将评论对象保存到django数据库中博客中的帖子

时间:2016-06-29 14:51:45

标签: python-2.7 django-models django-views

我正在制作一个简单的帖子和评论页面。在这个,当我评论一个帖子我试图在数据库上保存该评论。我正在检索通过使用其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/')

1 个答案:

答案 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')
相关问题