외국 키 필드에 대한 특정 값을 가진 Django 모델에서 모든 객체를 어떻게 얻을 수 있습니까?
-
23-08-2019 - |
문제
"부모"라는 외국 키가있는 모델이 있습니다.
class Item(models.Model):
parent = models.ForeignKey(Parent)
이것은 FK 모델입니다
class Parent(models.Model):
name = models.CharField(blank=True, max_length=100)
def __unicode__(self):
return str(self.name)
"xyz"의 부모와 함께 모든 항목을 얻는 쿼리를 실행하려고합니다.
Item.objects.filter(parent="xyz")
내가 시도 할 때 :
Item.objects.filter(parent.name="xyz")
또는:
Item.objects.filter(str(parent)="xyz")
오류가 발생합니다.
SyntaxError: keyword can't be an expression
이것을하는 올바른 방법은 무엇입니까?
해결책
전달 된 키워드에서 이중 밑줄을 사용할 수 있습니다. filter()
외국의 주요 관계에서 필드에 액세스합니다. 이와 같이:
Item.objects.filter(parent__name="xyz")
다른 팁
Googlers에 대한 향후 참조를 위해서는 최근 버전의 Django를 사용하여 키워드에서 추가 방법을 사용해야합니다. 예를 들어, 대신 parent__name
너가해야되는 parent__name__exact
. Cato의 링크에는 다른 예제가 포함되어 있습니다.
제휴하지 않습니다 StackOverflow