Столбец автозаполнения не отображается в базе данных администратора - PullRequest
0 голосов
/ 26 мая 2019

Я создал модель. Сообщение

class Post(models.Model):
  id = models.AutoField(primary_key=True)
  title = models.CharField(max_length=100)
  image = models.ImageField(upload_to='blog_image', default='default.jpg')
  smallContent = models.TextField()
  content = models.TextField()
  data_posted = models.DateTimeField(default=timezone.now)
  author = models.ForeignKey(User, on_delete=models.CASCADE)

  def __str__(self):
     return self.title

но поле id не отображается в админ-панели. Я сделал миграцию и миграцию, и оба успешно. image of admin panel

Ответы [ 2 ]

0 голосов
/ 26 мая 2019

AutoField генерируется после сохранения модели.Он не предоставляется в панели администратора, так как он не должен редактироваться.

Если хотите сделать id редактируемым (не рекомендуется), переопределите его как CharField вместо AutoField с primary_key = True.

Иначеесли вы просто хотите показать его на панели (при редактировании сохраненной модели), добавьте его в список read_only администратора вашей модели.

Подробнее о AutoField читайте здесь.

0 голосов
/ 26 мая 2019

Поскольку это поле только для чтения, я думаю, что вам, вероятно, нужно явно указать администратору, чтобы оно отображалось.

Не знаю, сработает ли это, но попробуйте admin.py

from django.contrib import admin
from .models import Post

class PostAdmin(admin.ModelAdmin):
    readonly_fields = ['display_id']

    def display_id(self, obj):
        return obj.id

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