在 Django 中选择性显示模型选择



在我的django应用程序中,我有一个名为"status"的模型字段。在获取此字段数据的窗体之一中,我只想显示模型中所有可用选项的子集。有没有办法从表单中删除选项?我需要数据库和管理员可以选择它的管理界面中删除的选项。

status = models.CharField(STATUS_FIELD_NAME, choices=STATUS_CHOICES,
                          default=STATUS_DEFAULT,
                          max_length=3)

您可以在表单中定义选项的子集:

class YourForm(forms.ModelForm):
    SUBSET_CHOICES = (
        (YourModel.CHOICE_ONE, _('First choice')),
        (YourModel.CHOICE_TWO, _('Second choice')),
    )
    class Meta:
        model = YourModel
        fields = ['choice', ]
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        self.fields['choice'].choices = self.SUBSET_CHOICES

最新更新