2009-12-21 4 views
3

필드 이름에 대한 키워드와 객체 가져올 때 :장고 KeyError를 나는 다음과 같은 방식으로 개체를 얻을하고자하는

Collection.objects.get(name='name', type='library', owner=owner, parent=parent) 

불행하게도 type뿐만 따라서 키워드입니다 다음과 같은 오류 작성

KeyError at /forms/create_library 
type 

type이라는 단어의 의미를 모호하게하여 해당 이름의 필드를 지정할 수 있습니까?

+3

이 문제는'type' 필드의 이름을 예약어가 아닌 것으로 바꾸면 해결됩니다. –

+0

네, 맞습니다. 앞으로 참고할 수있는 방법이 있습니다. –

답변

3

은 테스트되지 않음 :

Collection.objects.filter(
    name__exact='name', 
    type__exact='library', 
    owner__exact=owner, 
    parent__exact=parent) 

쿼리 문서 : http://docs.djangoproject.com/en/dev/topics/db/queries/

는 또한 내장과 같은 이름, 다른 사용자의 필드 이름을 지정 주로를 고려해야합니다.

+1

이것은 오류를 해결하는 것으로 보이지 않지만 모든 사람이 언급했듯이 필드 이름의 이름을보다 적합한 선택으로 변경합니다. –

0

확인 다른 문제가있는 것으로 나타났습니다. 나는이 형식을 사용하여 입력 값의 사전 self.cleaned_data을 사용했다.

나는 이전의 단순화에서 '라이브러리'라는 문자열을 명시한 self.cleaned_data['type']을 검색하려고 시도하고있었습니다. 이것은 실제로 양식의 정리 된 데이터가 아니므로 KeyError을 던졌습니다.