【发布时间】:2017-12-02 11:14:32
【问题描述】:
我的模板中有一个设计好的表单,我想使用它而不是 Django 表单。我创建了模型和视图类和 url,但我不知道如何接收和使用表单的数据。我已经研究过Rendering fields manually,但我想使用我的表单输入和标签,并且只需要数据。
请注意,类和模型可以完美运行,如果我在模板中使用 {{ form }} 而不是下面的 html 代码,我可以使用数据
这是我的 forms.py 中的课程:
class Reserve(forms.Form):
name = forms.CharField(label='نام و نام خانوادگی', max_length=100)
phone = forms.CharField(label='شماره تماس', max_length=11)
email = forms.EmailField(label='ایمیل', max_length=100)
occasion = forms.CharField(label='مناسبت', max_length=100)
month = forms.CharField(label='ماه', max_length=100)
day = forms.CharField(label='روز', max_length=100)
week = forms.CharField(label='روز هفته')
time = forms.CharField(label='ساعت', max_length=100)
message = forms.CharField(label='توضیحات')
这是我在 views.py 中的函数:
def add_reserve(request):
if request.method == 'POST':
form = Reserve(request.POST)
if form.is_valid():
name = form.cleaned_data['name']
phone = form.cleaned_data['phone']
email = form.cleaned_data['email']
occasion = form.cleaned_data['occasion']
month = form.cleaned_data['month']
day = form.cleaned_data['day']
week = form.cleaned_data['week']
time = form.cleaned_data['time']
message = form.cleaned_data['message']
reserve = MangReserve(name=name, phone=phone, email=email, occasion=occasion, month=month, day=day,
week=week, time=time, message=message)
reserve.save()
return HttpResponseRedirect('/')
else:
form = Reserve()
return render(request, 'mang/temp.html', {'form': form})
最后是我的表单的一部分:
<form method="post" action="{% url 'mang:add-reserve' %}">
{% csrf_token %}
<div class="form-group ">
<label for="name" class="sr-only">Name</label>
<input id="name" class="form-control" placeholder="نام و نام خانوادگی" type="text">
</div>
<div class="form-group ">
<label for="phone" class="sr-only">Name</label>
<input id="phone" class="form-control" placeholder="موبایل" type="text">
</div>
<div class="form-group ">
<label for="email" class="sr-only">Email</label>
<input id="email" class="form-control" placeholder="ایمیل" type="email">
</div>
<div class="form-group ">
<label for="occasion" class="sr-only">occasion</label>
<input id="occasion" class="form-control" placeholder="مناسبت" type="text">
</div>.......
【问题讨论】: