Django 字段选择未正确更新

Django field choices not properly updating

我有两个模型,一个在选择字段中动态加载另一个模型的标题。到目前为止,我修复了它,如果我通过更新 init 方法中的选择列表向使用标题的模型添加一个新的 object,选择列表会立即更新。但是,当我决定选择它作为选项并保存时,我得到:Select 一个有效的选择。 example 不是可用的选择之一。当我重新启动服务器时它确实起作用了,我做了什么:

型号:

class Assessment(models.Model):
    title = models.CharField(max_length=200)

    SPECIFIC_REQUIREMENTS_CHOICES = ()
    SPECIFIC_REQUIREMENTS_CHOICES_LIST = []

    for sRequirement in SpecificRequirements.objects.all():
        SPECIFIC_REQUIREMENTS_CHOICES_LIST.append((sRequirement.title, sRequirement.title))

    SPECIFIC_REQUIREMENTS_CHOICES = SPECIFIC_REQUIREMENTS_CHOICES_LIST

    sRequirementChoice = models.CharField(max_length=200, choices=SPECIFIC_REQUIREMENTS_CHOICES,
                                default='')

表格:

class AssessmentForm(forms.ModelForm):
    class Meta:
        model = Assessment
        fields = ['title', 'sRequirementChoice']

    def __init__(self, *args, **kwargs):
        super(AssessmentForm, self).__init__(*args, **kwargs)
        SPECIFIC_REQUIREMENTS_CHOICES_LIST = []

        for sRequirement in SpecificRequirements.objects.all():
            SPECIFIC_REQUIREMENTS_CHOICES_LIST.append((sRequirement.title, sRequirement.title))

        SPECIFIC_REQUIREMENTS_CHOICES = SPECIFIC_REQUIREMENTS_CHOICES_LIST

        self.fields['sRequirementChoice'].choices = SPECIFIC_REQUIREMENTS_CHOICES

这不是模型选择的工作方式。您不应该在模型中动态填充选项。

您应该考虑在您的模型中使用外键关系 SpecificRequirements