2012-12-11 4 views
0

django 프로젝트에서 django-cripsy-forms를 사용하기 시작했습니다. 나는 기본적으로 모든 양식에 태그를 인쇄하지 않는 것이 좋습니다. 각 양식에 대한 도우미를 만들고 helper.form_tag = False 속성을 설정할 수 있음을 알고 있습니다. 그러나 이것은 모든 기존 양식에 대해 수행하기 까다 롭습니다.django-cripsy-forms에서 helper.form_tag를 False로 설정할 수 있습니까?

기본 파삭 파삭 한 설정을 무시할 수 있는지 아는 사람이 있습니까?

답변

1

비슷한 상황에서 나 자신을 발견했습니다. 내가 생각해내는 것은 아래와 같은 견해에 대한 믹스 인이다. 그래도이 믹스 인을 관련 뷰에 추가해야하지만 모든 양식에 helper을 추가하는 것보다 낫습니다. 적어도 helper없이 모든 양식의 기본 동작을 변경할 수 있습니다.

이 방법은 클래스 기반보기에서만 작동합니다. 함수 기반보기를 사용하는 경우 prepare_form 함수를 추가하여 비슷한 동작을 수행하고보기에서 양식을 사용할 때마다 호출 할 수 있습니다.

 
class CrispyFormsMixin(object): 
    def get_form(self, form_class): 
     form = super(CrispyFormsMixin, self).get_form(form_class) 
     # Add a default helper for crispy_forms 
     if not getattr(form, 'helper', None): 
      form.helper = FormHelper() 
      form.helper.form_tag = False 
     return form