Python 表单操作不是';一点也没有
基本上,我目前正试图解决这样一个事实,即在表单提交后,您必须执行HttpResponseRedirect,以避免在页面刷新时重复提交 因此,我希望表单的提交按钮触发另一个视图,而不是提交当前视图。这是我的html: (我将表单取出,因为有很多代码可以水平地呈现表格) 和两个视图的url:Python 表单操作不是';一点也没有,python,html,django,forms,Python,Html,Django,Forms,基本上,我目前正试图解决这样一个事实,即在表单提交后,您必须执行HttpResponseRedirect,以避免在页面刷新时重复提交 因此,我希望表单的提交按钮触发另一个视图,而不是提交当前视图。这是我的html: (我将表单取出,因为有很多代码可以水平地呈现表格) 和两个视图的url: from django.conf.urls import url from . import views urlpatterns = [ url(r'^(?P<timesheet_id>
from django.conf.urls import url
from . import views
urlpatterns = [
url(r'^(?P<timesheet_id>[0-9]+)/person/timesheet/$', views.timesheet, name='timesheet' ),
url(r'^create_time/$', views.create_time, name='create_time' ),
]
从django.conf.url导入url
从…起导入视图
URL模式=[
url(r'^(?P[0-9]+)/person/timesheet/$',views.timesheet,name='timesheet'),
url(r“^create\u time/$”,views.create\u time,name='create\u time'),
]
所以我想在创建时保存时间表,然后返回时间表以避免重定向。。。。我认为这是有道理的
感谢表单中的操作参数定义了页面提交的位置,而不是按钮
<form id= "time-form" method = 'POST' action="{% url 'tande:create_time' %}" class="dynamic-form" enctype="multipart/form-data">{% csrf_token %}
<div id="formset-container" class = "formset-container">
<table>
<--form is in here-->
</table>
<ul>{{ newtime_formset.errors }}</ul>
</div>
</br>
<div>
<input type = "submit" id = "save" value = "Save Timesheet">
</div>
</form>
{%csrf\u令牌%}
{{newtime\u formset.errors}
在您看来,您还需要使用django反向url解析器
def create_time(request):
#below isn't printing
print "create_time view"
#save the form in here
return HttpResponseRedirect(reverse('timesheet', kwargs={"timesheet_id":<timesheet_id>}))
def创建时间(请求):
#下面没有打印
打印“创建时间视图”
#把表格保存在这里
返回HttpResponseRedirect(反向('timesheet',kwargs={“timesheet_id”:}))
还有一个问题,我得到时间表\u id全局名称未定义。所以我尝试了kwargs={“timesheet\u id”:timesheet\u object}
这是id值并获取NoReverseMatch。。。。找不到参数为“()”且关键字参数为“{timesheet_id':u'34'}”的“timesheet”的反转。已尝试0个模式:[]这是一个约定,您需要将其替换为包含时间表id的变量。应该是您在post GeneralYoh格式中创建的对象的id!在上面的'34'是我的时间表id。。。我需要在url中找到它..啊,我用“tande:timesheet”解决了这个问题。这可能是因为我在视图的前面有一个名为timesheet的变量。。。
<form id= "time-form" method = 'POST' action="{% url 'tande:create_time' %}" class="dynamic-form" enctype="multipart/form-data">{% csrf_token %}
<div id="formset-container" class = "formset-container">
<table>
<--form is in here-->
</table>
<ul>{{ newtime_formset.errors }}</ul>
</div>
</br>
<div>
<input type = "submit" id = "save" value = "Save Timesheet">
</div>
</form>
def create_time(request):
#below isn't printing
print "create_time view"
#save the form in here
return HttpResponseRedirect(reverse('timesheet', kwargs={"timesheet_id":<timesheet_id>}))