选择性显示django中的模型选择

时间:2015-01-27 14:57:33

标签: django forms model choice

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

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

1 个答案:

答案 0 :(得分:0)

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

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