Django无法读取表单操作中指定的变量

时间:2015-06-30 11:21:25

标签: python django

有人可以帮我解决下面的问题吗?我正在阅读'如何与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)

提交按钮似乎没有将数据发布到请求的网址。请告诉我哪里出错了?

1 个答案:

答案 0 :(得分:0)

如果要重定向到同一页面 你应该打电话给

return redirect('add_page', category_name_slug=page.category)

或者可能使用

之类的东西
return redirect(request.build_absolute_uri())

在代码的POST部分。

request methods

redirect() options

编辑:澄清&#39;返回重定向(&#39; rango /&#39;)&#39;没有指向问题中url映射中的任何内容。