[英]Django form submit url not working
我是Django的新手,无法弄清楚为什么我的表格不起作用。 似乎在表单提交后,即使将url更改为/82nsj/update
它仍然会转到视图中的index
方法。
查看
from business.models import Business, Token
from django.shortcuts import render
from business.forms import BusinessForm
def index(request, token):
try:
business = Business.objects.get(token__token=token)
except Token.DoesNotExist:
business = None
except Business.DoesNotExist:
business = None
form = BusinessForm(instance=business)
return render(request, 'business/index.html', {'form': form})
def update(request, token):
try:
business = Business.objects.get(token__token=token)
except Token.DoesNotExist:
business = None
except Business.DoesNotExist:
business = None
form = BusinessForm(request.POST, instance=business)
if form.is_valid():
form.save()
return render(request, 'business/index.html', {'form': form})
网址
url(r'^$', 'business.views.index', name='home'),
url(r'^business/(?P<token>\w+)/', 'business.views.index', name='business'),
url(r'^business/(?P<token>\w+)/update/', 'business.views.update', name='business_update'),
形式
self.helper = FormHelper(self)
self.helper.form_class = 'form-horizontal'
self.helper.form_action = 'update/'
self.helper.form_method = 'post'
self.helper.layout = Layout(
HTML("<p class='alert-info alert'>Please confirm your business contact information is updated and correct.</p>"),
Div(
'my',
'fields',
FormActions(
Submit('save_changes', 'Save changes', css_class="btn-primary"),
),
css_class='row-fluid'
)
)
我知道这不起作用,因为我在index
和update
设置了断点,在按下提交按钮后,只有index
断点到达。
我做错了什么阻止了update
方法在表单提交上运行?
这可能与您的url(...
有问题url(...
正则表达式。
Django将转到匹配的第一个URL,如果你有这个
url(r'^business/(?P<token>\w+)/', 'business.views.index', name='business'),
url(r'^business/(?P<token>\w+)/update/', 'business.views.update', name='business_update'),
转到/business/<token>/anything_goes_here
将始终转到business.views.index
。
要停止此操作,请end of expression
包含$
。
url(r'^business/(?P<token>\w+)/$', 'business.views.index', name='business'),
现在您的/business/<token>/update/
匹配第一个URL,然后匹配business.views.update
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.