2014-04-22 3 views
-2

저는 장고 양식으로 작업하고 있습니다. 폼 (form.py 또는 models.py?)에 대한 코드를 넣을 곳과 템플릿에 넣을 코드가 조금 있습니다. 내가 문서에 대해 수색했지만 그것을 알아낼 수 없다, 나는 약간 장고에서 새로운, 감사합니다.Django - 양식이 조금 손실되었습니다.

누군가가 저에게이 물건을 이해하기위한 간단한 양식의 완전한 예를 들어 주었으면 감사하겠습니다.

감사합니다. Django docs

에서

+0

정확한 문제는 무엇인가요? 너는 무엇을 이해할 수 없는가? –

+0

내 질문에 양식의 코드를 배치하는 방법과 작동 방식을 확인하는 기본 예제가 나와 있습니다. – BugFixer

답변

3

당신은 컨텍스트에 추가해야 템플릿에서 폼을 렌더링하려면

forms.py

from django import forms 

class ContactForm(forms.Form): 
    subject = forms.CharField(max_length=100) 
    message = forms.CharField() 
    sender = forms.EmailField() 
    cc_myself = forms.BooleanField(required=False) 

에서 양식 클래스를 생성한다 . 따라서 views.py은 이와 같이 보일 것입니다.

from django.shortcuts import render 
from django.http import HttpResponseRedirect 

def contact(request): 
    if request.method == 'POST': # If the form has been submitted... 
     # ContactForm was defined in the the previous section 
     form = ContactForm(request.POST) # A form bound to the POST data 
     if form.is_valid(): # All validation rules pass 
      # Process the data in form.cleaned_data 
      # ... 
      return HttpResponseRedirect('/thanks/') # Redirect after POST 
    else: 
     form = ContactForm() # An unbound form 

    return render(request, 'contact.html', { 
     'form': form, 
    }) 

이 부분에 유의하십시오. 사전 { 'form': form}은 요청 문맥이며, 이는 템플릿 변수에 키가 추가된다는 것을 의미합니다.

return render(request, 'contact.html', { 
    'form': form, 
}) 

이제 템플릿에서 사용할 수 있습니다.

<form action="/contact/" method="post">{% csrf_token %} 
{{ form.as_p }} 
<input type="submit" value="Submit" /> 
</form> 
+0

'templates.py'? – Anentropic

+0

죄송합니다. 답변을 업데이트했습니다. –

+0

내가 원했던 것, 고마워! – BugFixer

관련 문제