覆盖继承的django模型中的字段参数

时间:2014-11-28 21:21:22

标签: django python-3.x django-models

我安装了一个django应用程序,并希望限制外键的选择:

class InstalledModel(models.Model):
    ...
    base_field = models.ForeignKey(AnotherModel)

class MyModel(InstalledModel):
    """
    Somehow use limit_choices_to in base_field
    """

我知道在继承的模型中不能改变字段,但是想知道这是否也是正确的,因为它的参数似乎并没有改变模型本身的序列化和初始化。

1 个答案:

答案 0 :(得分:1)

您可以尝试使用属性作为limit_choices_to参数,例如:

class InstalledModel(models.Model):
    @property    
    def another_model_choices(self):
        if isinstance(self, MyModel):
            return {'some_condition': True}
        return None

    base_field = models.ForeignKey(AnotherModel, limit_choices_to=another_model_choices)