我在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如何确定应在列表和选择框中显示哪个字段?
答案 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。