django сайтов и отображение идентификатора в редакторе администратора - PullRequest
0 голосов
/ 22 апреля 2020

Я использую модуль Site в django. В интерфейсе администратора я вижу доменное имя и отображаемое имя. Однако мне бы очень хотелось увидеть идентификатор первичного ключа, поскольку я определяю сайты с помощью SITE_ID.

. Теперь я могу сделать это, отредактировав ./venv/lib/python3.7/site-packages/django/contrib/sites/admin.py, но это плохо много способов. Я бы просто добавил «id», таким образом:

class SiteAdmin(admin.ModelAdmin):
    list_display = ('id', 'domain', 'name')
    search_fields = ('id', 'domain', 'name')

Я сделал следующее в одном из моих models.py файлов, который помогает в оболочке, но не отображается в admin:

def site_name(self):
    return '{domain} ({id})'.format(
        domain=self.domain, id=self.id)

Site.__str__ = site_name

Любое предложение, как это сделать (или указывать на то, что я делаю неправильно, я думаю, что я этого хочу)?

1 Ответ

0 голосов
/ 22 апреля 2020

В вашем admin.py добавьте этот код:

from django.contrib.sites.models import Site

class SiteAdmin(admin.ModelAdmin):
    list_display = ('id', 'domain', 'name')
    search_fields = ('id', 'domain', 'name')


<b>admin.site.unregister(Site)</b>
<b>admin.site.register(Site, SiteAdmin)</b>

Поскольку Site уже зарегистрирован в admin, вам сначала нужно будет unregister, а затем зарегистрировать его снова.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...