我正在制作一个简单的帖子和评论页面。在这个,当我评论一个帖子我试图在数据库上保存该评论。我正在检索通过使用其ID进行评论的帖子的标题。但是当我尝试通过comments.post_title = header.title来实例化Post_Comment的post_title属性时,它给出了一个值eror,说不能分配" u' kjashdkh'":" Post_Comment.post_title"必须是" Post"实例。请注意" kjashdkh"是帖子标题。
class Post(models.Model):
title= models.CharField (max_length=100)
body= models.TextField ()
created=models.DateTimeField()
def __str__(self):
return self.title
class Post_Comment(models.Model):
comment= models.TextField()
post_title=models.ForeignKey(Post)
我的观点是:
def comment(request,pk):
header=Post.objects.get(id=pk)
comments=Post_Comment(comment=request.POST['comment'])
comments.post_title=header.title
header.delete()
comments.save()
return HttpResponseRedirect('/blog/')
答案 0 :(得分:1)
def comment(request,pk):
post = Post.objects.get(id=pk)
comment = Post_Comment.objects.create(post_title=post, comment=request.POST['comment'])
return HttpResponseRedirect('/blog/')
注意命名。你的模型应该是这样的:
class Post(models.Model):
title = models.CharField(max_length=100)
body = models.TextField()
created = models.DateTimeField(auto_now_add=True)
def __str__(self):
return self.title
class Comment(models.Model):
body = models.TextField()
post = models.ForeignKey(Post, related_name='comments')