2014-01-17 2 views
2

양식 저장을 방해하는 알려진 오류의 원인이있는 장고 관리자 양식이 있습니다. 모델의 모든 필드를 검사했고 필요한 모든 필드가 채워졌습니다. 양식의 상단에Django 관리자 양식에 표시되지 않는 필드의 오류

Please correct the error below. 

, 아직 필드는 오류 메시지가 강조되지 않은 : 그럼에도 불구하고, 나는 표준 오류 메시지가 계속.

또 다른 원인이 될 수 있으며 어떻게 디버깅합니까?

답변

5

다음은 숨겨진 오류가 무엇인지 확인하는 방법입니다. 폼 클래스보다도 이러한 수입 추가 (이미 존재하지 않는 경우 새로 생성) : 그런 다음 폼 클래스에 추가

# get a way to log the errors: 
import logging 
log = logging.getLogger(__name__) 
# convert the errors to text 
from django.utils.encoding import force_text 

을이 정의 :

class MyAdminForm(forms.ModelForm): 

    def is_valid(self): 
     log.info(force_text(self.errors)) 
     return super(MyAdminForm, self).is_valid() 

당신이 제출 한 후 로그를 검토 할 때 다시, 숨겨진 모든 오류를 나열합니다. 이 필드를했기 때문에

get_num_items = forms.IntegerField() 

이 검증 실패 :이 문제가 있었을 때

, 나는 오류의 원인은 내가 폼에 추가했던 일부 '계산'읽기 전용 필드, 예를 들면이었다 발견 필요에 따라 값이 없습니다. required = False를 포함하도록 필드 정의를 변경하면 다음과 같이 문제가 해결되었습니다.

get_num_items = forms.IntegerField(required=False) 
+0

가능한 원인을 추가하려면 - 일부 추가,하지만 읽기 전용 정보를 표시하도록 필드를 덮어 쓴 사용자 지정 서식 파일로 인라인을 포함 할 때이 오류가 발생했습니다. 필자는 필드를 명시 적으로 읽기 전용 필드로 나열하여이를 수정했기 때문에 뷰 로직은이를 예상하지 못했습니다. – nimasmi

0

동일한 문제가있었습니다. 필자가 데이터베이스에서 값을 강제하는 auto_now_add가있는 DateTimeField가되었지만 Django의 형식이 올바르지 않거나 auto_now_add로 표시된 필드가 관리자에게 표시되지 않았기 때문에 오류가 표시되지 않았습니다.

관련 문제