Я в настоящее время работаю с django универсальными представлениями, и у меня есть проблема, которую я не могу выяснить.
При использовании delete_object я получаю Исключение TypeError:
delete_object() takes at least 3 non-keyword arguments (2 given)
Вот код (я опустил docstrings и импорт):
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, что это?
Вам необходимо указать 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'):