Как изменить название столбца модели в 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)
Вернуться на верх