与关系的get_object_or_404。

问题描述 投票:3回答:2

我想从这一点来看,一定是可以的 职位 但我似乎无法理解其语法。 我需要通过作者外键获取带有图片字段的博客对象。

这是否可以用get_object_or_404来实现,如果可以,如何实现?

#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)
django django-queryset
2个回答
1
投票

你想要的查询是这样的(来自于 文件):

from django.db import models

class City(models.Model):
    # ...
    pass

class Person(models.Model):
    # ...
    hometown = models.ForeignKey(City)

class Book(models.Model):
    # ...
    author = models.ForeignKey(Person)

然后你的疑问是:

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.select_related('author__blog').get(picture_name='somefilename.jpg')

你是说我想知道图片(还有你的作者和他们的博客) 与图片名称 "somefilename.jpg "有关的内容。至少如果我理解了你的问题和DB结构,它是。


0
投票

正如Pureferret所建议的 他的回答 你可以通过以下方式来实现。

blog = Blog.objects.get(pk=blog_id)
author = blog.author

如果你想在模板中显示该图片,只需使用

{{ auther.picture.url }}
© www.soinside.com 2019 - 2024. All rights reserved.