【发布时间】:2021-11-21 07:07:28
【问题描述】:
当我尝试在 django 管理表单中排除“slug”字段时,我得到了这个消息:“KeyError at /admin/post/post/add/
“在‘PostForm’中找不到键‘slug’。选项有:作者、内容、图片、标题。”
为什么?
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)
谢谢!
【问题讨论】:
-
看起来您已经对模型进行了一些更改而没有进行一些迁移。
./manage.py makemigrations和./manage.py migrate。再试一次
标签: python django django-admin