Проблема с использованием общих представлений в Django - PullRequest
1 голос
/ 22 июля 2010

В настоящее время я работаю с общими представлениями 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, что это?

1 Ответ

2 голосов
/ 22 июля 2010

Вам необходимо указать 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'):
...