我有一个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)
看起来您应该使用外键而不是一对一字段,因为它是一对多关系(用户可以编写许多文章):
相关问题 更多 >
编程相关推荐