python - 此错误或一直显示 : integrityError, UNIQUE 约束失败 : blog_post.author_id

标签 python django

请有人帮我修复代码中的这个错误。

这是我在 models.py 文件中的代码

class Post(models.Model):
    author=models.OneToOneField(User)
    topic = models.CharField(max_length=255)
    article =models.TextField()
    publish_date=models.DateTimeField(auto_now_add=True)
    slug=models.SlugField(unique=True)

这是views.py文件中的代码

def add_post(request):
   if not  request.user.is_authenticated():
       return redirect('/login/')
   if request.method=='POST':
       form= post_form(request.POST)
       if form.is_valid():
           post=form.save(commit=False)
           post.author=request.user
           post.slug=slugify(post.topic)
           form.save()
           slug=slugify(topic)
           return redirect('blog.views.post',slug=post.slug)
       else:
           return render(request,'post_add.html',{'form':form})
   else:
       form=post_form()
       template='post_add.html'
       return render (request,template,{'form':form})

最佳答案

您目前有一个一对一的作者字段。这意味着每个帖子都有一位作者,并且每个作者最多可以有一篇帖子。当您尝试添加具有相同作者的第二篇帖子时,您会收到错误消息。

相反,您应该使用外键。这意味着每个帖子都有一位作者,但多个帖子可以链接到同一作者。

class Post(models.Model):
    author=models.ForeignKey(User)

完成此更改后,您将必须创建新的迁移并进行迁移,以删除唯一约束。

关于python - 此错误或一直显示 : integrityError, UNIQUE 约束失败 : blog_post.author_id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33159227/

相关文章:

python - 将 python 算法的多个 git 项目分支 merge 为一个

python - 在嵌套/平面字符串和整数列表中查找超过 10 的最小数字

python - 在 Python 中将 .dbf 批量转换为 .csv

python - numpy/scipy,遍历子数组

python - 如何制作一个数值在一定范围内的 Numpy 矩阵?

django - 比较 GWT 和 Django?

python - 无论我做什么,都找不到 django-admin.py,即使它在我的路径中

django - 错误 "Could not load Boto' s S3 绑定(bind)。”

javascript - 自定义选择标签功能

Django REST 框架很慢