Как изменить название столбца модели в Django Admin?
Мой файл admin.py
from django.contrib import admin
from . models import contactEnquiries
class ContactAdmin(admin.ModelAdmin):
list_display = ['cn_name', 'cn_email', 'cn_number']
@admin.display(description='Name')
def cn_name(self, obj):
return obj
admin.site.register(contactEnquiries, ContactAdmin)
Я хочу отображать названия столбцов как - Имя, Email, Номер вместо 'cn_name', 'cn_email', 'cn_number'
в панели администратора. Я попробовал приведенный выше код, но я не уверен, как это сделать? Кто-нибудь может помочь?
Вы можете использовать verbose_name
в самой модели, не затрагивая базу данных или любую другую функцию. Например, вот так column_name = models.CharField(verbose_name="name you desire")
и это изменит имя вашей колонки в админке django для вас.
В вашем случае вы используете следующий код:
class contactEnquiries(model.Models):
cn_name = models.CharField(verbose_name="Name", your other config)
#your all other columns here and you can user verbose_name in all your model columns.
Вы можете прочитать документацию здесь: https://docs.djangoproject.com/en/4.1/ref/models/options/#verbose-name
from django.contrib import admin
from . models import contactEnquiries
class ContactAdmin(admin.ModelAdmin):
list_display = ['cn_name', 'cn_email', 'cn_number']
def cn_name(self, obj):
return obj.cn_name
cn_name.short_description = 'Name'
def cn_email(self, obj):
return obj.cn_email
cn_email.short_description = 'Email'
admin.site.register(contactEnquiries, ContactAdmin)