Django 如何在视图中使用 ajax 保存模型对象的一部分(每次一个属性)



我想使用 Ajax 在 Django 模型中保存一个对象。但是我在视图中遇到了一个问题,因为我有一个有点复杂的模型(作为保存(。问题是当我想保存模型的属性时,我不知道如何在同一模型中保存下一个属性,因为 Ajax 每次提交表单时都会调用视图函数,所以如何创建该视图函数来保存属性。 这些是我的模型,我希望你能帮助我,因为这对我来说非常重要: (当用户单击"周期"字段时,他将填写他的数据,他将点击提交,因此我需要每次使用查看功能在数据库中保存时间表类的一个属性,以便我可以保存整个时间表模型(

class Period (models.Model):
module = models.ForeignKey(Module, on_delete=models.CASCADE, related_name='modules')
teacher = models.ForeignKey(Teacher, on_delete=models.CASCADE,related_name='teachers')
classroom = models.ForeignKey(Classroom, on_delete=models.CASCADE, related_name='classrooms')
// I didn't put the other classes "Module","Teacher","Classroom" here 
class TimeTable(models.Model):
// this class represent a time table for school
first_first = models.ManyToManyField(Period, blank=True,  related_name='peride_one')
first_second = models.ManyToManyField(Period, blank=True, related_name='perides_two')
first_third = models.ManyToManyField(Period, blank=True, related_name='perides_three')
first_forth = models.ManyToManyField(Period, blank=True, related_name='perides_four')
first_fifth = models.ManyToManyField(Period, blank=True, related_name='peride_five')
second_first = models.ManyToManyField(Period, blank=True,  related_name='perides_six')
second_second = models.ManyToManyField(Period, blank=True,  related_name='perides_seven')
second_third = models.ManyToManyField(Period, blank=True,  related_name='perides_eight')
second_forth = models.ManyToManyField(Period, blank=True,  related_name='perides_nine')
second_fifth = models.ManyToManyField(Period, blank=True,  related_name='perides_ten')
third_first = models.ManyToManyField(Period, blank=True,  related_name='perides_eleven')
third_second = models.ManyToManyField(Period, blank=True,  related_name='perides_twelve')
third_third = models.ManyToManyField(Period, blank=True,  related_name='perides_thirteen')
third_forth = models.ManyToManyField(Period, blank=True,  related_name='perides_fourteen')
third_fifth = models.ManyToManyField(Period, blank=True,  related_name='perides_fifteen')
forth_first = models.ManyToManyField(Period, blank=True,  related_name='perides_sixteen')
forth_second = models.ManyToManyField(Period, blank=True,  related_name='perides_seventeen')
forth_third = models.ManyToManyField(Period, blank=True,  related_name='perides_eighteen')
forth_forth = models.ManyToManyField(Period, blank=True,  related_name='perides_nineteen')
forth_fifth = models.ManyToManyField(Period, blank=True,  related_name='perides_twenty')
fifth_first = models.ManyToManyField(Period, blank=True,  related_name='perides_twentyone')
fifth_second = models.ManyToManyField(Period, blank=True,  related_name='perides_twentytwo')
fifth_third = models.ManyToManyField(Period, blank=True,  related_name='perides_twentythree')
fifth_forth = models.ManyToManyField(Period, blank=True,  related_name='perides_twentyfour')
fifth_fifth = models.ManyToManyField(Period, blank=True,  related_name='perides_twentyfive')
level = models.ForeignKey(Niveau, on_delete = models.CASCADE)
slug = models.SlugField(unique=True)

您是否需要为时间表中的每个属性使用多对多字段? 例如,一个时间表可以有多个first_first吗?

最新更新