我目前在我的Django应用程序中设置了两个具有ForeignKey关系的模型。
class Post(models.Model):
title = models.CharField(max_length=100)
body = RichTextField(config_name='awesome_ckeditor')
pub_date = models.DateTimeField('date', null=True)
description = models.CharField(max_length=100, blank=True, null=True)
photo = models.ImageField(upload_to='media/', blank=True, null=True)
def __unicode__(self):
return self.title
class Comment(models.Model):
post = models.ForeignKey(Post, related_name="comments", blank=True, null=True)
name = models.CharField(max_length=100, null=True)
comment = models.TextField(blank=True)
pub_date = models.DateField("date", blank=True, null=True)
def __unicode__(self):
return unicode(self.name)
我没有得到的是在两者之间进行查询。我试过通过shell进行查询但没有成功。如果我设置Post(title="Cat")
然后设置c = Comment(name="Dog")
,我可以通过类似title
和name
之类的内容查询各个模型p = Post.object.get(pk=1)
或p.title
Cat
。但如果我p.comment
或p.comment_id
,则会出错。与任何Comment
对象一样。但是当我print c.post
时,我得到None
。为了让p.<field_here>" =
Dog`,我缺少什么?
答案 0 :(得分:0)
由于您有相关名称“comments”,因此应该以这种方式调用从Post
设置外部模型的访问权限:
p.comments
但是,由于您可以为同一个帖子提供许多评论,因此这不会返回唯一值,而是您需要查询的相关管理器。所以你可以得到:
p.comments.filter(name="Dog")