Как администратор Django определяет, какие поля отображаются - PullRequest
0 голосов
/ 14 ноября 2011

У меня есть 3 поля в моем классе Country в models.py. Затем я использовал следующий код в admin.py:

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

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

После запуска manage.py syncdb я вошел в систему с правами администратора и добавил страну. При сохранении он не показывает собственное название страны, а показывает «Объект страны» в списке и выпадающий список, где он добавляется как внешний ключ. Как Django определяет, какое поле должно отображаться в списках и в полях выбора?

Ответы [ 2 ]

3 голосов
/ 14 ноября 2011

Все зависит от вашего __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 голос
/ 14 ноября 2011

попробуйте изменить __unicode__ метод модели.это самый простой способ.

если вам нужно больше столбцов, вам нужно создать класс, унаследованный от ModelAdmin и определить свойство list_display.Затем вы можете связать его так:

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

вы можете найти более подробную информацию здесь .

...