2010-07-26 3 views
0

ModelForm을 기반으로 from을 사용하고 formset_factory를 사용하여 두 개의 사전을 기반으로 formset을 만듭니다. 또한 하나의 추가 양식이 있습니다.장고 (Django) formset에 대한 폼 검증을 트리거하는 것은 무엇입니까?

필자는 formset JS 플러그인을 사용하여 데이터가있는 두 형식을 삭제합니다. 나머지 빈 양식을 POST 할 때 필수 필드 때문에 유효성 검사에 실패합니다.

왜 그 양식의 유효성을 검사하고 있는지 이해할 수 없습니다. 해당 changed_data 목록은 비어 있습니다. 그것은 empty_permitted = False로 반환됩니다. (왜 그런지 알고 싶습니다.)하지만 디버거에서 True로 변경 한 후에도 유효성이 검사됩니다.

그럼 트리거링은 무엇이며 어떻게 수정할 수 있습니까?

초기 데이터와 같은 데이터가 저장되는 위치를 알고 싶습니다. 내가보기에는 어디에서 볼 수 있나요?

답변

0

템플릿 관리 양식에 INITIAL_FORMS이라는 카운터가 있습니다. 양식 추가 및 삭제를위한 formset 플러그인은 처음에 채워진 양식과 추가하는 양식을 구별하지 않습니다. 양식이 삭제되면 처음 채워지는 경우 INITIAL_FORMS를 감소시켜야합니다.

처음 채워지는 양식에 플래그를 지정하는 템플릿 변수를 포함하면이 기능을 구현할 수 있습니다. formset plugin의 제거 된 기능에서 플래그가 지정된 양식 중 하나가 삭제되면 INITIAL_FORMS를 감소시킵니다.

관련 문제