我想知道是否可以在django中添加一些条件字段。 假设我有一个具有ID,名称和描述字段的类别模型。 我想要的是在我的产品模型中添加一个多对多字段,将其与类别ID模型相关联......并作为帮助参考显示该类别的名称。 我知道我可以将它链接到类别名称,但我的真实场景有点复杂,我真的需要根据另一个选择显示第二个字段!
非常感谢!
答案 0 :(得分:2)
除了Daniel的答案之外:如果您只想在ModelChoiceField
中自定义对象的表示形式(而不是通常使用__unicode__
方法更改它):字段class有方法label_from_instance
,它默认返回对象的unicode值,但您可以根据需要覆盖它:
class CategoryChoiceField(forms.ModelChoiceField):
def label_from_instance(self, obj):
return "%s %s" % obj.pk, obj.name
答案 1 :(得分:0)
这不是一个有条件的领域。如果我理解正确,您真正需要的是自定义相关项目的显示,以便它显示name
字段而不是原始ID。幸运的是,如果你在Category模型上定义一个__unicode__
方法,Django默认会这样做,它返回你想要显示的值而不是ID。