[PYTHON] 모델없이 Django 폼을 가질 수 있습니까?
PYTHON모델없이 Django 폼을 가질 수 있습니까?
모델에 의해 뒷받침되지 않는 템플릿을 내 양식에 포함 할 수 있습니까? 필자는 데이터를 저장할 필요가 없으며 뷰에서 내 자신의 POST 요청을 생성하기 위해 해당 데이터가 필요합니다.
Template - 텍스트 필드가있는 양식입니다. 보기 - 양식에서 데이터를 가져 와서 다른 요청을 생성합니다.
흐름 -> 양식 제출은보기를 호출하는 URL로 이동합니다 "
def form_handle(request):
if request.method=='POST'
form = request.POST
#blah blah encode parameters for a url blah blah
#and make another post request
그러나 이것은 csrf 토큰만을 양식 변수에 넣습니다. 내 form_handle보기에서 해당 텍스트 필드에 액세스 할 수있는 방법이 있습니까?
나는 모델을 가지고 그것을하는 방법을 안다. 그러나 이것을 이해할 수 없었다!
해결법
-
==============================
1.예. 이것은 매우 가능합니다. Form 객체를 읽을 수 있습니다. 모델에 구속되지 않는다는 점을 제외하면 ModelForm을 처리하는 것과 같은 방법이며, 모든 양식 속성을 명시 적으로 선언해야합니다.
예. 이것은 매우 가능합니다. Form 객체를 읽을 수 있습니다. 모델에 구속되지 않는다는 점을 제외하면 ModelForm을 처리하는 것과 같은 방법이며, 모든 양식 속성을 명시 적으로 선언해야합니다.
def form_handle(request): form = MyForm() if request.method=='POST': form = MyForm(request.POST) if form.is_valid(): cd = form.cleaned_data #now in the object cd, you have the form as a dictionary. a = cd.get('a') #blah blah encode parameters for a url blah blah #and make another post request #edit : added ": " after if request.method=='POST'
과
class MyForm(forms.Form): #Note that it is not inheriting from forms.ModelForm a = forms.CharField(max_length=20) #All my attributes here
템플릿에서 :
<form action="{% url form_handle %}" method="POST">{% csrf_token %} {{form.as_p}} <button type="submit">Submit</button> </form>
from https://stackoverflow.com/questions/17754295/can-i-have-a-django-form-without-model by cc-by-sa and MIT license
'PYTHON' 카테고리의 다른 글
[PYTHON] matplotlib의 텍스트 주위 상자 (0) | 2018.10.22 |
---|---|
[PYTHON] 클래스 '__new__ 메소드를 팩토리로 사용 : __init__이 두 번 호출 됨 (0) | 2018.10.22 |
[PYTHON] 파이썬에서 기본 __hash__은 무엇입니까? (0) | 2018.10.22 |
[PYTHON] shlex.split의 반대는 무엇입니까? (0) | 2018.10.22 |
[PYTHON] Python / Pandas에서 두 행의 차이 계산하기 (0) | 2018.10.22 |