Django外键具有不同的模型字段值

时间:2018-01-06 17:02:42

标签: django django-models django-forms

我想在模型中创建外键关系,它实际上根据模型的另一个字段值为模型表单提供选择下拉列表。通常下拉列表显示__str__方法返回值的值。我想保留它,因为它在其他地方使用。

例如,考虑两个模型OrderItem

Item包含名为item_codeitem_name的字段。 __str__将返回item_name

Order模型将拥有Item模型的外键。但我希望它在项目选择的下拉列表中提供item_code字段值。

如何在不改变一般外键行为的情况下实现这一目标?

1 个答案:

答案 0 :(得分:1)

您可以在表单中执行此操作,方法是使用自定义label_from_instance方法定义ModelChoiceField的子类,如the documentation中所述。