以django形式显示特定字段

时间:2011-10-02 21:23:44

标签: django django-models django-forms

我有一个django形式的以下字段:

position = forms.ModelChoiceField(Position.objects.order_by('-ordering'),
                                    empty_label='Select Position',)

在我的Position模型中,我使用unicode字段显示名为“position”的字段。但是,在这种特殊形式中,我希望输出是模型中名为“position-select”的不同字段。我如何不用更改unicode字段的默认输出?

谢谢。

2 个答案:

答案 0 :(得分:3)

这是有用的:

class PositionSelect(forms.ModelChoiceField):
    def label_from_instance(self, obj):
        return obj.select_display

class Position(forms.Form):
    position = PositionSelect(Position.objects.order_by('-ordering'),
                                    empty_label='Select Position',)

答案 1 :(得分:1)

根据https://docs.djangoproject.com/en/dev/ref/forms/fields/#modelchoicefield的示例,尝试“继承ModelChoiceField并覆盖label_from_instance”。您可以在该重写类中指定对其他字段的__unicode__函数的引用。