설명서를 읽었지만 여전히 오류가 발생하고 있습니다. Catalog 객체에 대한 Orders를 배치 한 사용자가 있습니다. 특정 카탈로그 항목이 들어있는 Order가있는 모든 사용자를 반환하는 쿼리를 만들고 싶습니다. 여기 장고 관계에 걸쳐
class Catalog(models.Model):
name = models.CharField(max_length=100)
price = models.IntegerField()
def __unicode__(self):
return self.name
class Annual(models.Model):
catalog = models.OneToOneField(Catalog, blank=True, null=True, related_name='annual_products')
year_id = models.IntegerField(max_length=4)
start_date = models.CharField(max_length=10)
end_date = models.CharField(max_length=10)
date = models.DateTimeField(auto_now_add=True, blank=True)
def __unicode__(self):
return unicode(self.year_id)
class Order(models.Model):
user = models.ForeignKey(User, related_name='who_ordered')
select = models.ManyToManyField(Catalog, related_name='annuals_ordered', blank=True, null=True)
def __unicode__(self):
return unicode(self.user)
내가 노력했습니다 쿼리입니다 : 내가 제대로 다음 질문을 받았다면
Catalog.objects.filter(order__select__annual='2014')
사용자부터 시작하면 훨씬 더 의미가 있습니다. 감사. 나는 PK : User.objects.filter (order__select = '2')를 사용하여 질의를 올바르게 수행 할 수 있었다. 나는 당신의 질문과 똑같이 더 명시 적으로하고 싶습니다. 그래도 다음 오류를 반환 해요 : 관계 필드 중첩 된 조회를 지원하지 않습니다. – byrdr
아, related_name이 정의 된 것을 보지 못했습니다. 보십시오'order__select__annual_products__year_id –
이것이 올바른 방법이라고 생각합니다 ... User.objects.filter (who_ordered__select__annual_products__id = 1) 또는 User.objects.filter (who_ordered__select__annual_products = annual_obj) 관련 참조 이름이 각 참조와 일치해야합니다. 나는 나의 대답을 업데이트했다. –