2011-01-22 6 views
3

필자는 자신의 책을 다소 진부한 예제로 직접 필드를 표시하기 위해 django-uni-forms를 사용하고 있습니다.django-uni-form 헬퍼와 POST를 통한 CSRF 태그

<form>{%csrf_tag%} {%form|as_uni_form%}</form>을 사용하여 양식 필드를 렌더링하면 모든 것이 예상대로 작동합니다. {% with form.helper as helper %}{% uni_form form helper%}{%endwith%} - -

그러나, 장고 - 유니 폼 도우미는 다음과 같은 구문을 사용하여 양식 태그 (및 기타 도우미 관련 콘텐츠)를 생성 할 수 있도록이 나를 위해 <form> 태그를 만듭니다, 그래서 내장 곳이 없습니다 내 CSRF_token을 소유하고 있습니다. 이 구문을 사용하려고하면 양식이 완벽하게 렌더링되지만 CSRF 토큰이 없으므로 양식을 제출할 때마다 오류가 발생합니다.

누구나이 경험이 있습니까? 토큰을 추가하는 방법이 있습니까? 나는 재사용 이유로 두 번째 구문을 선호한다. 감사합니다.

+0

이 템플릿에 따르면 csrf 태그가 있어야합니다 https://github.com/pydanny/django-uni-form/blob/master/uni_form/templates/uni_form/whole_uni_form.html –

답변

3

출처를 확인 했습니까? 그것은 이미 거기에 있어야합니다. uni_form 템플릿 태그는 자동으로 태그를 포함해야합니다.

+0

내 요구 사항을 켭니다 .txt pip manifest)는 0.7.0으로 하드 코딩되어 있었고, 나는 눈치 채지 못했다. 나를 위해 고정 된 트렁크로 업데이트 중입니다. – linked

2

나는 Django-uni-form과 똑같은 문제를 겪고 있습니다.

{% load uni_form_tags %} 
{% uni_form form helper %} 

나 : 내가 사용하는 경우 CSRF 토큰이 <form> 태그 다음에 표시되지 않습니다

<form action='{{ request.path }}' method='POST' class="uniForm">{% csrf_token %} 
{{ form|safe }} 
</form> 

나는 blog post을 발견

{% load uni_form_tags %} 
{% with form.helper as helper %} 
    {% uni_form form helper%} 
{%endwith%} 

을 내가 그것을 포함하는 경우 수동으로 작동 여기서는 csrf 토큰을 수동으로 포함하는 방법에 대해 간략히 설명합니다.

helper = FormHelper() 

csrf_token = Hidden(
       name = 'csrfmiddlewaretoken', 
       value = request.META['CSRF_COOKIE']) 
helper.add_input(csrf_token) 

전혀 아니지만 최소한 유니폼이 작동하도록 만들어야합니다.

+0

위의 응답에 대한 의견을 확인하십시오. 글쎄, 기술적으로 그가 있었기 때문에 나는 그를 정확한 것으로 표시했다. :) – linked

1

가장 쉬운 해결책은 PyPi의 버전이 0.8로 업데이트 될 때까지 GitHub에서 django-uni-form을 설치하는 것입니다.

pip install https://github.com/pydanny/django-uni-form/tarball/master 
1

최신 버전의 django-uni-form을 사용하십시오. 이 문제가 수정되었습니다.