0
나는 다음과 같은 장고 모델이 - 장고 모델 외래 키 필드를 일치
class M(models.Model):
...
disp_name = models.CharField(max_length=256, db_index=True)
...
class XX(models.Model):
x = models.ForeignKey(User)
y = models.ForeignKey(M, unique=True)
지금 내 views.py에, 나는 필드 y.disp_name와
XX
의 모든 항목에 대한 부분 문자열 일치를 수행 할를.
일반적으로 사람은이 작업을 수행 할 것 - M.objects.filter(disp_name__istartswith='string')
그러나 여기 M
는 Model XX
의 외래 키입니다. 그래서 내가 XX.objects.filter(y.disp_name__istartswith='string')
을하면 오류가 발생합니다. 또한
SyntaxError: keyword can't be an expression (<console>, line 1)
어떻게이 작업을 수행하는 - 나는 말합니다 얻을 u = User.objects.get(id=1) u.xx_set.filter(y.disp_name__istartswith='string')
예외?
죄송합니다. 고마워, 그게 문제를 해결 했어! 그래서 django는 LHS 부분을 '__'로 나눕니다 & 필드로 사용합니까? –
물론, 자연스럽게 조회 유형 ('in','istartswith' 등)과 조인을 구별 할 필요가 있기 때문에 그것보다 복잡합니다. 관심이 있다면'django.db.models.sql.query.Query.add_filter'의 코드를보십시오. –