我安装了一个django应用程序,并希望限制外键的选择:
class InstalledModel(models.Model):
...
base_field = models.ForeignKey(AnotherModel)
class MyModel(InstalledModel):
"""
Somehow use limit_choices_to in base_field
"""
我知道在继承的模型中不能改变字段,但是想知道这是否也是正确的,因为它的参数似乎并没有改变模型本身的序列化和初始化。
答案 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)