我目前正在使用django通用视图,我遇到了一个我无法弄清楚的问题。
使用delete_object时出现TypeError异常:
delete_object() takes at least 3 non-keyword arguments (2 given)
这是代码(我已经省略了文档字符串和导入):
views.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')
urls.py
urlpatterns = patterns('issues.views',
(r'(?P<issue_id>\d+)/delete/$', 'delete_issue'),
)
其他通用视图(object_list,create_object等)可以正常使用这些参数。我遇到的另一个问题是当使用create_object()函数时,它说的是CSRF机制,那是什么?
答案 0 :(得分:2)
您需要提供post_delete_redirect
,这意味着网址,删除对象后应重定向用户。您可以在视图签名中找到它:
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'):