2010-10-11 28 views
0

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

非常感谢!

+0

我忘了解释,我需要这种情况发生在管理员! – 2010-10-11 23:41:27

回答

0

这不是一个有条件的字段。如果我理解正确,那么您真正需要的是定制相关项目的显示,以便它显示name字段而不是原始ID。幸运的是,如果您在类别模型上定义了__unicode__方法,那么这就是Django默认会执行的操作,该方法返回您想要显示的值而不是ID。

+0

umh ...我不知道我是否正确地解释了自己:我需要在管理站点中发生这种情况。我仍然在我的Django体验的开始,但我缩小了__unicode__方法是在模板和其他文档中使用,但不在管理面板中使用。 THANSK – 2010-10-11 23:38:28

+0

不,在任何有外键的地方工作,包括管理网站。 – 2010-10-12 07:58:47

2

除了丹尼尔的回答是:如果你只是想自定义对象的表示在ModelChoiceField(而不是改变它在一般你将与__unicode__方法做什么):该字段类有方法label_from_instance,返回默认情况下,该对象的Unicode值,但你可以覆盖它,只要你喜欢:

class CategoryChoiceField(forms.ModelChoiceField): 

    def label_from_instance(self, obj): 
     return "%s %s" % obj.pk, obj.name 
+0

在管理网站中做这项工作吗?这就是我需要显示这些信息的地方......我需要根据其他字段的值自动填充一些字段。谢谢 – 2010-10-11 23:39:24

相关问题