Django 获取带有关系的\u对象\u或\u 404
我想这一定是可能的判断,但我似乎无法计算出语法。我需要通过author外键获取带有picture字段的blog对象 get_object_或_404是否可能实现这一点,如果可能,如何实现Django 获取带有关系的\u对象\u或\u 404,django,django-queryset,Django,Django Queryset,我想这一定是可能的判断,但我似乎无法计算出语法。我需要通过author外键获取带有picture字段的blog对象 get_object_或_404是否可能实现这一点,如果可能,如何实现 #models.py class Blog(models.Model): author = models.ForeignKey(MyUser) #author class MyUser(AbstractUser): picture = models.ImageField() blog = g
#models.py
class Blog(models.Model):
author = models.ForeignKey(MyUser)
#author
class MyUser(AbstractUser):
picture = models.ImageField()
blog = get_object_or_404(Blog, pk=blog_id)
您想要的查询是这样的(来自): 然后您的查询是:
b = Book.objects.select_related('author__hometown').get(id=4)
p = b.author # Doesn't hit the database.
c = p.hometown # Doesn't hit the database.
b = Book.objects.get(id=4) # No select_related() in this example.
p = b.author # Hits the database.
c = p.hometown # Hits the database.
除非是在您的情况下,否则您的查询将是:Picture.objects。选择相关('author\u blog')。获取(Picture\u name='somefilename.jpg')
你是说我想要与图片名“somefilename.jpg”相关的图片(当你在看的时候,还有作者和他们的博客)。至少如果我已经理解了你的问题和数据库结构的话。正如Pureferret在 你可以用下面的方法来做
blog = Blog.objects.get(pk=blog_id)
author = blog.author
如果您想在模板中显示该图像,只需使用
{{ auther.picture.url }}
不清楚你在问什么。听起来你的意思是
get\u object\u或\u 404(Blog,author\u picture='somefilename.jpg')
,但这没有多大意义。你的Blog对象可以访问作者和个人资料。blog.author.picture应该会生成您的结果,尽管它会引起查询。好的,我理解。所以在一个查询中,我只想通过id获得博客,还有作者的照片。我想这在get_object_或_404中是不可能的?这似乎是可能的。这是两次数据库点击,不是吗?这肯定是很久以前的事了,虽然我很感激没有很好地解释它,但似乎@victor chris cabral的回答是正确的,这里是-@rix绝对正确,但回答总是比评论好(评论更容易消失)。这也应该是一个具体的例子,对于任何其他来到这里的人来说。
{{ auther.picture.url }}