我有一个应用程序,有员工档案,我可以为每个档案添加安全课程。在这个应用程序中,我有一个表单,它使用ModelChoiceField从数据库中获取select值。在CreateView中它工作得很好。我可以输入日期,并为配置文件选择课程并将其添加到数据库中。但我遇到的问题是当我更新配置文件的安全课程时。当我更新表单时,它会更新“执行日期”和“过期日期”,但select表单不会更新。当我输入更新表单时,表单甚至没有选择它当前拥有的值,例如:
如果我有一个“John Doe”的配置文件,并将“course1”添加到他的配置文件中,那么就可以了,但是当我编辑配置文件时,没有选择“course1”,而是选择了“course2”。然后,当我选择另一个课程如“course3”并按submit时,“进行日期”和“到期日期”会更新,但不会更新课程。那么,我到底做错了什么或者我遗漏了什么?在
在表单.py在
class SafetyCourseTakenForm(forms.ModelForm):
course = forms.ModelChoiceField(queryset=SafetyCourse.objects.all(), empty_label=None)
class Meta:
model = SafetyCoursesTaken
fields = [
'conducted_date',
'expiration_date',
]
在视图.py在
^{pr2}$我还尝试在我的表单.py但那也没用。在
SafetyCourseTakenForm(forms.ModelForm):
...
...
def __init__(self, *args, **kwargs):
super(SafetyCourseTakenForm, self).__init__(*args, **kwargs)
self.fields['course'].queryset = SafetyCourse.objects.all()
重申一下。为什么我的UpdateView只更新“执行日期”和“过期日期”字段,而不更新“课程”字段?为什么“选择”字段在编辑表单上没有正确的表单值?在
注意:如果您需要更多的信息,请告诉我。在
您没有指定}。确保
course
是与模型关联的字段;将保存的字段只有conducted_date
和{course
也在元字段列表。在相关问题 更多 >
编程相关推荐