Python 表单操作不是';一点也没有

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>

基本上,我目前正试图解决这样一个事实,即在表单提交后,您必须执行HttpResponseRedirect,以避免在页面刷新时重复提交

因此,我希望表单的提交按钮触发另一个视图,而不是提交当前视图。这是我的html: (我将表单取出,因为有很多代码可以水平地呈现表格)

和两个视图的url:

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>}))