Django管理站点:如何包含条件字段?

时间:2010-10-11 13:56:01

标签: django django-models django-admin django-forms

我想知道是否可以在django中添加一些条件字段。 假设我有一个具有ID,名称和描述字段的类别模型。 我想要的是在我的产品模型中添加一个多对多字段,将其与类别ID模型相关联......并作为帮助参考显示该类别的名称。 我知道我可以将它链接到类别名称,但我的真实场景有点复杂,我真的需要根据另一个选择显示第二个字段!

非常感谢!

2 个答案:

答案 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。