#python #django #django-admin
Вопрос:
когда я пытаюсь исключить поле «пуля «в форме администратора django,я получил следующее сообщение:» Ошибка ключа в /admin/post/post/add/ «Ключ» пуля «не найден в «PostForm». Выбор таков: автор, содержание, изображение, название.» Почему? код django: модель: models.py
:
from django.db import models
from django.utils import timezone
from django.urls import reverse
# Create your models here.
class Post(models.Model):
title= models.CharField(max_length=50,null=False,blank=False)
content= models.TextField(max_length=2000,null=False,blank=False)
image= models.ImageField( upload_to="post-img/")
created_at=models.DateTimeField(default=timezone.now)
author=models.CharField(max_length=50,null=True,blank=True)
slug=models.SlugField(max_length=30)
class Meta:
verbose_name =("Post")
verbose_name_plural =("Posts")
def __str__(self):
return self.title
def get_absolute_url(self):
return reverse("PostDetail", kwargs={'slug': self.slug})
def headline(self):
return self.content[:50] '...'
admin.py
:
from django.contrib import admin
from .models import Post
# Register your models here.
class PostAdmin(admin.ModelAdmin):
exclude=('created_at','slug',)
# fieldsets=(({'fields':('title','content','image',)}),)
list_display=['title','headline','author','created_at']
prepopulated_fields = {'slug': ('title',)}
admin.site.register(Post,PostAdmin)
Спасибо!
Комментарии:
1. Похоже, что вы внесли некоторые изменения в свою модель без каких-либо миграций.
./manage.py makemigrations
и../manage.py migrate
И попробуйте еще раз
Ответ №1:
slug=models.SlugField(max_length=30, blank=True, editable=False)
Примечание:
Не садись null
на Чарфилда. blank
этого достаточно.
вы можете добавить slug field
в readonly_fields
в администраторе
Ответ №2:
Вы решили исключить его из администратора. Но база данных требует, чтобы она имела значение.
Вам нужно добавить null=True
и blank=True
в поле:
slug=models.SlugField(max_length=30, blank=True, null=True)
Примечание: Убедитесь, что вы
makemigrations
иmigrate
для этого вступили в силу