有人可以帮我解决下面的问题吗?我正在阅读'如何与django'项目探戈并坚持到这里。
我想要一个html表单恢复到视图功能(add_page)。
<h1>Add a Page</h1>
{% if category %}
<form id="category_form" method="post" action="/rango/category/{{category.slug}}/add_page/">
{% endif %}
这是我的网址地图
urlpatterns = patterns('',
url(r'^$',views.index, name = 'index'),
url(r'^about/$',views.about, name = 'about'),
url(r'^category/(?P<category_name_slug>[\w\-]+)/$',views.category,name = 'category'),
url(r'^add_category/$', views.add_category, name = 'add_category'),
url(r'^category/(?P<category_name_slug>[\w\-]+)/add_page/$',views.add_page, name ='add_page'),
)
和我的veiws.add_page函数
def add_page(request,category_name_slug):
try:
cat = Category.objects.get(slug = category_name_slug)
except :
cat = None
if request.method == 'POST':
form = PageForm(request.POST)
if form.is_valid():
if cat:
page = form.save(commit = False)
page.category = cat
page.views = 0
page.save()
return redirect('/rango')
else:
print (form.errors)
else:
form = PageForm()
context_dict = {'form':form,'category':cat}
return render(request, 'rango/add_page.html',context_dict)
提交按钮似乎没有将数据发布到请求的网址。请告诉我哪里出错了?
答案 0 :(得分:0)
如果要重定向到同一页面 你应该打电话给
return redirect('add_page', category_name_slug=page.category)
或者可能使用
之类的东西return redirect(request.build_absolute_uri())
在代码的POST部分。
编辑:澄清&#39;返回重定向(&#39; rango /&#39;)&#39;没有指向问题中url映射中的任何内容。