2012-05-17 5 views
1

내가 this documentation왜 장고 쿼리 세트에는 저를위한 작업이 포함되어 있지 않습니까?

에 따르면,이 코드 구현하지만 내 결과를 필터링 내 장고 개체 변수에의 검색어 '_contains'를 사용할 수 있어야합니다 :

cookbooks = Books.objects.filter (category_contains = 'cooking')

을 나는 다음과 취득을 오류 :

Cannot resolve keyword 'category_contains' into field. Choices are: category, adder, date etc.

왜 이런 일이 무엇입니까? 나는 또한 누군가가 category 변수를 사용하는 것이 category_exact을 의미한다고 설명하는 this StackOverflow question을 보았습니다. 그러나 내가 category_exact이라고 쓰면 비슷한 오류가 발생합니다.

답변

4

__ 두 개의 밑줄 _이 아닌 하나의 밑줄을 사용해야합니다.

+0

아, 맞습니다. 주변에서 놀면서 나는 다른 것들을 바꿨습니다. 그 트릭을 했어! 감사! – user1328021

+0

@ user1328021 환영합니다. 이 대답을 수락하십시오. – Marcin

2

필드 조회에는 두 개의 밑줄 (__)이 아닌 하나 (_)를 통해 접두사가 붙습니다. 구문에 익숙하지 않은 경우 처음에는 차이점을 알기가 어려울 수 있습니다.

field lookups에 대한 자세한 내용은 contains 문서를 참조하십시오. 다음은 하나 또는 두 개의 밑줄을 보여주는 주석이 들어있는 문서의 예입니다.

Entry.objects.get(headline__contains='Lennon') 
#       __ <-- 2 _'s 
#      not _ <-- 1 _ 
관련 문제