Forms#- 양식 베이스
# forms.py
from django import forms
class NameForm(forms.Form):
your_name = forms.CharField(label='Your name', max_length=100)
여기서 주의해야 할 사항은 다음과 같습니다.label
매개 변수는 무시할 수 있습니다. Django는 자동으로 이 열에 label을 생성합니다. (사실 여기 label
이 지정한 이름은 Django가 자동으로 생성한 이름과 같습니다) max_length
은 HTML의 양식에 대응하는 열의 maxlength
속성을 지정하고 브라우저 양식에서 제출한 내용의 길이를 합리화 처리 is_valid()
메서드가 있습니다.cleaned_data
속성에 마지막으로 위의 Django에서 만든 양식은 HTML에
으로 표시됩니다. 참고:
태그 from django.shortcuts import render
from django.http import HttpResponseRedirect
from .forms import NameForm
def get_name(request):
# if this is a POST request we need to process the form data
if request.method == 'POST':
# create a form instance and populate it with data from the request:
form = NameForm(request.POST)
# check whether it's valid:
if form.is_valid():
# process the data in form.cleaned_data as required
# ...
# redirect to a new URL:
return HttpResponseRedirect('/thanks/')
# if a GET (or any other method) we'll create a blank form
else:
form = NameForm()
return render(request, 'name.html', {'form': form})
모든 유용한 정보는 코드의 주석에서
{% csrf_token %}
{{ form }}
{{ form }}
변수 중의 폼 내용은 자동으로 분리되어 일부 브라우저에서 url
, eamil
, number
등 라벨에 대한 합리성 검사가 Django보다 엄격하다. 이때 Django의 URLField
, EmailField
등을 사용하지 않고 예를 들어 TextField
으로 대체할 수 있다.Django의 Form classes
is_bound
데이터를 통해 이 표의 귀속 여부를 알려줍니다 더 많은 양식 유형# forms.py
from django import forms
class ContactForm(forms.Form):
subject = forms.CharField(max_length=100)
message = forms.CharField(widget=forms.Textarea)
sender = forms.EmailField()
cc_myself = forms.BooleanField(required=False)
widgets는 각 폼 열에 대응하는
widget class
이 HTML을 지정하는 폼의
라벨의 type
속성이 있는데 대부분 field
마다 자신의 기본 widget
이 있지만 우리는 widget
파라미터를 통해 필요한 type
유형을 현저하게 지정할 수 있다성공적으로 제출된 데이터는 사전 형식으로 폼 대상의
cleaned_data
속성에 저장됩니다# views.py
if form.is_valid():
subject = form.cleaned_data['subject']
message = form.cleaned_data['message']
sender = form.cleaned_data['sender']
cc_myself = form.cleaned_data['cc_myself']
일부 필드는 다른 처리 방식이 필요합니다.예를 들어 업로드된 파일이
request.FILES
에 있음템플릿의 양식 작업
{{ form }}
템플릿 변수는 정의된 필드에 따라
과
태그 {{ form.as_p }}
, {{ form.as_table }}
, {{ from.as_ul }}
은 각 탭 열에 각각
,
(
태그 사용) 상단 ContactForm
이 {{ from.as_p }}
을 통해 획득한 HTML 양식:
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.