2011-11-14 40 views
0

我在models.pyCountry類中有3個字段。然後我用下面的代碼在admin.pyDjango管理員如何確定顯示哪些字段

from jobs.models import * 
from django.contrib import admin 

admin.site.register(Country) 
admin.site.register(City) 

運行manage.py syncdb我登錄到管理後並增加了一個國家。保存時不顯示國家的正確名稱,而是在列表中顯示「國家對象」,並在添加爲外鍵的位置顯示下拉菜單。 Django如何確定列表和選擇框中應顯示哪個字段?

回答

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" 
+0

不過謝謝fieldname會返回爲'self.field1' – Hafiz

1

嘗試改變__unicode__模型的方法。這是最簡單的方法。

如果需要更多列,則需要創建一個繼承自ModelAdmin的類並定義list_display屬性。那麼你可以這樣鏈接它:

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

你可以找到更多的細節here

相關問題