1

我有一个继承自 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
4

1 回答 1

0

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

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

    class Meta:
        model = InheritAction

如果需要,您可以在管理员中使用该表单

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

于 2012-11-21T20:25:14.010 回答