【发布时间】:2021-09-30 21:39:55
【问题描述】:
我有一个只是日期字段和提交按钮的表单
Forms.py
from django import forms
from datetime import date
class DateInput(forms.DateInput):
input_type = 'date'
class HomeForm(forms.Form):
EnterDate = forms.DateField(widget=DateInput, initial=date.today())
由于用户请求,我只想将数据发送到这样的url
首页/2021-07-01
所以我尝试为我的 html 表单执行此操作,只需将 form.EnterDate.value 粘贴在表单操作部分中,但它仅在第二次尝试时有效。
<form method="POST" class="form-inline my-2 my-lg-0" action="{% url 'mint-post' form.EnterDate.value %}">
{% csrf_token %}
<label for="{{form.EnterDate.id_for_label}}">Enter Date</label>
{{form.EnterDate}}
<button class="btn btn-primary my-2 my-sm-0" type="submit">Submit Date</button>
#Inital loading the form
def mintHome(request):
form = HomeForm()
context = {
'form': form }
return render(request, 'mintyHome.html', context)
#after Post
def mintHomePost(request, pk):
if request.method =='POST':
form = HomeForm(request.POST)
if form.is_valid():
datePost = form.cleaned_data['EnterDate']
stringDate = datePost.strftime("%Y%m%d")
context = {
'form': form }
return render(request, 'mintyHome.html', context)
我在这里做了一个例子:
https://alisayt.pythonanywhere.com/minty/home
它仅在第二次提交时发送 form.EnterDate.value,而不是第一次。
【问题讨论】:
标签: html django django-forms