更改Djang的UpdateView中的值后,表单字段值未更新

2024-09-30 12:18:03 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个应用程序,有员工档案,我可以为每个档案添加安全课程。在这个应用程序中,我有一个表单,它使用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只更新“执行日期”和“过期日期”字段,而不更新“课程”字段?为什么“选择”字段在编辑表单上没有正确的表单值?在

注意:如果您需要更多的信息,请告诉我。在


Tags: pyself数据库应用程序编辑表单配置文件forms

热门问题