1

我目前正在使用 django 通用视图,但我有一个无法解决的问题。

当使用 delete_object 我得到一个 TypeError 异常:

delete_object() takes at least 3 non-keyword arguments (2 given)

这是代码(我省略了文档字符串和导入):

视图.py

def delete_issue(request, issue_id):
    return delete_object(request,
                         model = Issue,
                         object_id = issue_id,
                         template_name = 'issues/delete.html',
                         template_object_name = 'issue')

网址.py

urlpatterns = patterns('issues.views',
    (r'(?P<issue_id>\d+)/delete/$', 'delete_issue'),
)

其他通用视图(object_list、create_object 等)可以很好地使用这些参数。我遇到的另一个问题是使用 create_object() 函数时,它说明了 CSRF 机制,那是什么?

4

1 回答 1

2

您需要提供post_delete_redirect,这意味着 url,在删除对象后应该重定向用户。您可以在视图签名中找到它:

def delete_object(request, model, post_delete_redirect, object_id=None,
        slug=None, slug_field='slug', template_name=None,
        template_loader=loader, extra_context=None, login_required=False,
        context_processors=None, template_object_name='object'):
于 2010-07-22T10:49:34.213 回答