Django:为PositiveIntegerField提供继承类的自定义选项

时间:2012-11-21 18:26:33

标签: python django django-models django-admin

我有一个继承自Action的类InheritAction。现在我想做的是为PositiveIntegerField提供不同的选择。我知道我们不能覆盖django中的类属性。但有没有办法做到这一点。提前致谢

     ACTION_TYPE = (
            (1, 'Approve'),
            (2, 'Reject'),
            (3, 'More Information Required'),
            (4, 'Status Update')
            )
    class Action(models.Model):
        type = models.PositiveIntegerField(choices=ACTION_TYPE)

    INHERIT_ACTION_TYPE = (
            (1, 'Approve'),
            (2, 'Reject'),
            (3, 'More Information Required'),
            (4, 'Status Update')
            )
    class InheritAction(Action):
        pass

我试过这样做......

InheritAction._meta.get_field('type).choices = INHERIT_ACTION_TYPE

但是给出了错误......

AttributeError: can't set attribute

1 个答案:

答案 0 :(得分:0)

您可以覆盖表单中的选项。

class InheritActionForm(forms.ModelForm):
    type = forms.ChoiceField(choices = INHERIT_ACTION_TYPE)

    class Meta:
        model = InheritAction

如果需要,你可以use that form in the admin

据我所知,选项选项不会向数据库添加任何约束,它只适用于自动生成的表单。