0
I 다음과 같습니다 장고 모델 (나는 &는 관련이없는 필드를 생략 테이블을 단순화했습니다 내가 테이블/관계 변경할 수 없습니다.)이 있습니다가져 오기 데이터 외래 키
Class Attachment(models.Model):
name = models.CharField()
Class Email(models.Model):
subject = models.CharField()
from = models.ForeignKey(User)
attach = models.ForeignKey(Attachment)
Class User(models.Model):
name = models.CharField()
을
필자는이 첨부 파일을 보낸 Users
을 모두 찾고 싶습니다. 그래서 먼저 내가 email_set 통해 반복하지 않고 email_set
즉,에 이메일의 from
필드에 나열된 모든 사용자를 가져올 수있는 효율적인 방법 무엇이 첨부 파일을
my_attachment = Attachment.objects.get(name='Picture1.jpg')
email_set = my_attachment.email_set.all()
포함 된 모든 이메일을 가져옵니다.
users = (User
.objects
.filter(email__attachment__name = 'Picture1.jpg')
.distinct()
)
는 데이터베이스 테이블에 필요한 인덱스를 생성하는 것을 잊지 마십시오 :
User.objects.filter 확실 하시겠습니까? – hellsgate
물론! 고마워요 @hellsgate !! – danihp
Django에서 간단하게 보이고 작동합니다. SQL SELECT 문은 다음과 같습니다. SELECT'user'.'id','user'.name 'FROM'user' INNER JOIN'email' ON ('user'.') id '='email'.user_id') INNER JOIN'첨부'ON ('email'.attach_id' ='첨부'.'id') 어디''첨부'.name' = % Picture1.jpg % – Medorator