我目前在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)
我没有得到的是在两者之间进行查询。我尝试通过外壳进行查询,但没有成功。如果我设置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`,我想念什么?
由于您具有相关的名称“ comments”,因此Post
应以这种方式调用从中访问设置外部模型的权限:
p.comments
但是,由于您可以对同一则帖子有很多评论,因此它不会返回唯一值,而是需要查询的相关管理器。这样您可以获得:
p.comments.filter(name="Dog")
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句