你想要的查詢是像這樣(從docs):
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')
你的意思是我想要這張照片(而當你在它的時候,Auth或他們的博客)與圖片名稱'somefilename.jpg'相關。至少如果我已經理解你的問題和數據庫結構了。
目前尚不清楚你在問什麼。聽起來你的意思是'get_object_or_404(Blog,author__picture ='somefilename.jpg')',但這沒有多大意義。 – lanzz
您的博客對象將有權訪問作者和個人資料。 blog.author.picture應該會產生你的結果,儘管它會導致查詢。 –
好吧,我明白了。所以在1個查詢中,我只想通過id獲取博客,還有作者的照片。我想這不可能與get_object_or_404? – rix