第二次保存模型对象时出现整数错误

2024-06-02 06:33:22 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个Post模型和一个用户模型

class Post(models.Model):
    user = models.OneToOneField(User)
    title = models.CharField(max_length=255)
    content = models.TextField()
    date = models.DateField(auto_now_add = True)

    def __unicode__(self):
         return self.title

当我添加一个新帖子(使用表单)时,一切正常。但是当我添加第二个post传递同一个用户时,我得到了UNIQUE constraint failed: socnet_post.user_id错误。在

我使用自定义身份验证后端:

^{pr2}$

异常来自保存后()行:

@login_required
def profile(request, username=None):
    context = RequestContext(request)

    if not username:
        username = request.user.username

    user = User.objects.get(username=username)
    posts = Post.objects.filter(user=user)

    context_dict = {'posts': posts}

    if request.method == 'POST':
        form = AddPostForm(request.POST)
        if form.is_valid():
            post = form.save(commit=False)
            post.user = request.user
            post.save()

    add_post_form = AddPostForm()
    context_dict['add_post_form'] = add_post_form
    return render_to_response('socnet/profile.html', context_dict, context)

Tags: 用户模型formaddifmodelsrequestcontext
1条回答
网友
1楼 · 发布于 2024-06-02 06:33:22

看起来您应该使用外键而不是一对一字段,因为它是一对多关系(用户可以编写许多文章):

class Post(models.Model):
    user = models.ForeignKey(User)
    title = models.CharField(max_length=255)
    content = models.TextField()
    date = models.DateField(auto_now_add = True)

    def __unicode__(self):
         return self.title

相关问题 更多 >