博客五部曲之二 - 高级博客


544 浏览 2 years, 11 months

11 Generic Foreign Key 1

版权声明: 转载请注明出处 http://www.codingsoho.com/

从这节开始我们会开始写一个自己的评论系统,这里会用到技术Generic ForeignKey
查看admin,每个post都跟user关联了,但是我们还系统

首先创建应用comments python startapp comments,并把它加到INSTALLED_APP里去。

添加Comment models,并在admin中进行注册。

from django.conf import settings
from posts.models import Post

class Comment(models.Model):
    user = models.ForeignKey(settings.AUTH_USER_MODEL, default=1)
    post = models.ForeignKey(Post)
    content = models.TextField()
    timestamp = models.DateTimeField(auto_now_add=True)
    def __unicode__(self):
        return str(self.user.username)
    def __str__(self):
        return str(self.user.username)

在post_detail.html中添加comment的显示

<div>
    {{instance.comment_set.all}}
</div>

在admin中添加一个评论,这个评论绑定到具体的用户和帖子。

这时候查到详情视图就可以看到我们的评论了。

但是这个实现还有个问题,如果我们想看看那些没有发表的帖子呢?或者你打算对其他的内容进行评论这个该怎么办?下一节我们会用Generic ForeignKey来解决