как изменить имя поля администратора в django, python - PullRequest
0 голосов
/ 14 октября 2019

Я добавил одну модель Автор в файл models.py в своем приложении и создал имена моделей для автора, когда я открывал в панели администратора, он отображается как объект Автор (12), как я могу это изменить?

Я пытался добавить Unicode

class Author(models.Model):
    author_name=models.CharField(max_length=300)

Я хочу имя поля вместо объекта Author в панели администратора. enter image description here ниже я хочу изменить Автор объекта

Ответы [ 3 ]

2 голосов
/ 14 октября 2019

Попробуй:

class Author(models.Model):
    author_name=models.CharField(max_length=300)

    def __str__(self):
        return self.author_name

Следуй тому, что сказал @dirkgroten "Сделай привычкой всегда переопределять str для всех своих моделей"


ТакжеВы можете использовать list_display метод в вашем admin.py для достижения аналогичного результата. Создайте класс администратора и используйте list_display для визуализации полей модели в табличном формате

Admin.py

from app.models import Artist      #<-----Import you artist model 

@admin.register(Artist)          #<----- admin class should be just below this line
class ArtistAdmin(admin.ModelAdmin):

    list_display = ["id", "author_name"]

Или вы также можете сделать это:

from app.models import Artist      #<-----Import you artist model 


class ArtistAdmin(admin.ModelAdmin):
    list_display = ["id", "author_name"]

admin.site.register(Artist, ArtistAdmin)    #<----register your class also
0 голосов
/ 14 октября 2019

Вы можете переопределить метод __str__ в классе модели django следующим образом:

class Author(models.Model):
    author_name=models.CharField(max_length=300)

    def __str__(self):
        return self.author_name
0 голосов
/ 14 октября 2019

Вот пример переопределения метода __str__ для таких случаев, как ваш.

class Language(models.Model):
    language = models.CharField(max_length=32)

    class Meta:
        app_label = "languages"
        ordering = ["-modified"]

    def __str__(self):
        return f"{self.language} (language {self.id})"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...