2016-08-09 1 views
0
를 디버깅하는 방법

나는 ModelMultipleChoiceField는 ModelMultipleChoiceField

logger.debug("names %s" % self.fields['names_list']) 

의 값을 로그온을 시도하지만 예상되는 결과는 STH 같다

2016-08-09 17:00:19,027 DEBUG views names <django.forms.models.ModelMultipleChoiceField object at 0xa74d0bcc> 

을 가지고 :

2016-08-09 17:00:19,027 DEBUG views names [33,40,45] 

갱신 I 불명확 한 것이 확실하지 않다 - 나는지지한다. ose, 당신은 모델을보고 싶지만, 쓸모가 없다고 생각합니다. ModelMultipleChoiceField에서 선택된 인스턴스의 PK 만 필요합니다.

양식을 입력 할 때 숨겨진 필드를 설정하기 때문에 디버깅해야합니다. :

<input id="id_names" name="names" type="hidden" value="[33]" /> 

내가 추가 필드 (ModelMultipleChoiceField를 사용)를 사용하여 설정하기 위해 노력하고있어 - 청소하는 동안 나는 checkings 및 설정 값을 veryfing하고 있습니다. 하지만 ModelMultipleChoiceField는 깨끗한 상태로 비어있는 것처럼 보입니다. 그래서 사실이라면 디버깅하고 싶습니다.

+0

당신이 필요로 문자열 목록에 ModelMultipleChoiceField을 변환 할 수 있습니다 (나는 당신이 그 숨겨진 필드를 생각하고 같은 이름을 가지고 multiplechoicefield 때문에 names_list에 필드 이름을 이름을 변경해야합니다) 조금 더 많은 문맥을 보여줄 수 있습니다. 우리는'logger.debug'를 어디에서 호출하는지 전혀 알지 못합니다. – Alasdair

+0

나는 해결책을 알고 있었다. 나는 완전히 잊었다. 나는 깨끗한 방법으로 self.cleaned_data [ 'names']를 사용할 수있다. 정확히 원하는 것은 아니지만, 디버깅에 충분하다. –

답변

1

당신은

selected_names = [label for value, label in self.fields['names'].choices if value in self['names'].value()] 
logger.debug("names %s" % selected_names) 
+0

'in ' 왼쪽 피연산자로 문자열이 필요합니다. –

+0

잠깐, 자기를 사용하는 이유 [ 'names']는 self.fields가 아니어야합니다 [ 'names'] –

관련 문제