我想从这一点来看,一定是可以的 职位 但我似乎无法理解其语法。 我需要通过作者外键获取带有图片字段的博客对象。
这是否可以用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)
你想要的查询是这样的(来自于 文件):
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结构,它是。
正如Pureferret所建议的 他的回答 你可以通过以下方式来实现。
blog = Blog.objects.get(pk=blog_id)
author = blog.author
如果你想在模板中显示该图片,只需使用
{{ auther.picture.url }}