Django管理员如何确定显示哪些字段

时间:2011-11-14 09:25:16

标签: django django-models django-admin

我在Country的{​​{1}}课程中有3个字段。然后我在models.py中使用了以下代码:

admin.py

运行from jobs.models import * from django.contrib import admin admin.site.register(Country) admin.site.register(City) 后,我登录了管理员并添加了一个国家/地区。保存时,它不会显示国家/地区的正确名称,而是在列表中显示“国家/地区对象”,并将其作为外键添加到下拉列表中。 Django如何确定应在列表和选择框中显示哪个字段?

2 个答案:

答案 0 :(得分:3)

这一切都取决于您的__unicode__方法。这定义了管理列表或外键链接中每个模型实例的显示内容。

class Mymodel(Model)
    field1 = CharField()
    field3 = CharField()
    field3 = CharField()

    def __unicode__(self):
        return self.field1

>>> Mymodel.objects.get(pk=1)
"contents of field1 that will show up for all related fields in admin"

答案 1 :(得分:1)

尝试更改模型的__unicode__方法。这是最简单的方法。

如果您想要更多列,则需要创建一个继承自ModelAdmin的类并定义list_display属性。然后你可以像这样链接它:

admin.site.register(Country, CountryAdmin)
admin.site.register(City, CityAdmin)

您可以找到更多详情here