当我使用Django通用视图update_object时

时间:2009-09-27 05:04:36

标签: django

当我使用Django通用update_object视图进行编辑时,我总是收到此错误:

 Page not found (404) Request Method:
 POST Request URL:
 http://127.0.0.1:8000/bookmarks/edit/

我的url.py

(r'^edit/(?P<object_id>\d+)$',
                         update_object,
                         {'form_class':BookForm,
                          'post_save_redirect':'/',
                          'queryset':Book.objects.all()
                          }),

我的模板:

<form action="." method="POST">
    {{form.as_p}}
    <p>
        <input type="submit" name="submit" value="Next?" /></button>
    </p>
</form>

为什么会这样?

2 个答案:

答案 0 :(得分:2)

在您的模板帖子中,网址为:/bookmarks/edit/。它与^edit/(?P<object_id>\d+)$不匹配。

所以编辑

<form action="." method="POST">

<form action="/bookmarks/edit/{{ object.id }}" method="POST">

然后它会起作用!

或将网址^edit/(?P<object_id>\d+)$更改为^edit/(?P<object_id>\d*)$

答案 1 :(得分:1)

这样做:

r'^edit/(?P<object_id>\d+)$'