2015-01-28 3 views
1

어떻게 초기 값을 empty_form으로 설정할 수 있는지 알고 싶습니다.Django : 어떻게 초기 값을 formset의 empty_form으로 설정할 수 있습니까?

추가 양식의 초기 값으로 인라인을 만들지 만 사용자가 버튼을 클릭하면 단추를 추가하면 초기 값이 비어있는 필드가 표시되고 초기 값이 같기를 바랍니다. 값은 여분의 것보다 큽니다.

초기 데이터로 empty_form을 채우려면 어떻게해야합니까?

미리 감사드립니다.

답변

0

나는 비슷한 문제가있어서 마침내 나를 위해 일한 것이 Django Dynamic Formset을 사용하고있었습니다. DDF가하는 일은 빈 form을 사용하여 새로운 formset을 만드는 대신 extra_forms 중 하나를 템플릿으로 사용합니다. 기본 동작은 HTML을 DOM에 삽입하기 전에 extra_form의 모든 필드 값을 지우는 것입니다. 그러나 keepFieldValues 설정을 사용하여 보관할 값을 지정할 수 있습니다.

내 경우에는 내가 모든 숨겨진 필드의 값을 유지하고 싶었 : 물론

$(function() { 
    $('#myForm_table tbody tr').formset({ 
     keepFieldValues: 'input:hidden', 
     } 
    }); 
}); 

당신은 당신이 원하는 경우 자바 스크립트 코드를 삭제/장고 동적 Formsets을 무시하고 자신의 부가 기능을 구현할 수 있습니다.

0

장고는 실제로 빈 양식의 초기 값을 설정하는 방법을 제공하지 않습니다. 이 문제를 해결할 수있는 몇 가지 방법을 찾았습니다.

  1. javascript에서 동적으로 필드 값을 설정하십시오.
  2. formset의 empty_form 속성을 덮어 씁니다.

예 :

formset = formset_factory(MyClass, **kwargs) 
empty = formset.empty_form  
# empty is a form instance, so you can do whatever you want to it 
my_empty_form_init(empty_form) 
formset.empty_form = empty_form 
+0

라인 4에 속성을 설정할 수 없습니다 : formset.empty_form = empty_form – gabn88

관련 문제