django独自のレンダリングテンプレートを使用できますが、現在のフロントエンドフレームワークがレンダリングするほど見栄えがよくないためattrs
、パラメーターを使用して、コードは次のようになります。
この記事の内容
フォームクラスを書く
まず、現在のアプリでforms.pyファイルを作成し、次のコンテンツを入力します。
from django import forms
class TaskForm(forms.Form):
task_domain = forms.CharField(label="", widget=forms.TextInput(attrs={
'class':'form-control'}), max_length=50)
2つのポイント:
- ラベルは不要です。ラベルは空になるように制御する必要があります
- ウィジェットによって処理されるフロントエンドによってレンダリングされるcssとして入力タグクラスを制御する
最終レンダリング効果
<input type="text" name="task_domain" class="form-control" maxlength="50" required="" id="id_task_domain">
ビュー処理
ビューファイルview.py
from django.shortcuts import render
from django.http import HttpResponseRedirect
from .forms import NameForm
def get_name(request):
# 如果form通过POST方法发送数据
if request.method == 'POST':
# 接受request.POST参数构造form类的实例
form = NameForm(request.POST)
# 验证数据是否合法
if form.is_valid():
# 处理form.cleaned_data中的数据
# ...
# 如果是通过GET方法请求数据,返回一个空的表单
else:
form = NameForm()
return render(request, 'form.html', {
'form': form})
テンプレートの使用
ではDjango
、次のようにテンプレート、我々は唯一の完全なHTMLページを取得するプロセスに必要があります。
<form action="/" method="post">
{
% csrf_token %}
{
{
form }}
<input type="submit" value="Submit" />
</form>