2010-07-22 22 views
1

Je travaille actuellement avec des vues génériques django et j'ai un problème que je n'arrive pas à comprendre.Problème lors de l'utilisation de vues génériques dans django

Lorsque vous utilisez delete_object je reçois une exception TypeError:

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

Voici le code (j'ommited docstrings et les importations):

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'), 
) 

Les autres vues génériques (object_list, create_object, etc.) fonctionnent correctement avec ces paramètres. Un autre problème que j'ai est lors de l'utilisation de la fonction create_object(), il dit quelque chose sur un mécanisme CSRF, qu'est-ce que c'est?

Répondre

2

Vous devez fournir post_delete_redirect, cela signifie que l'utilisateur doit être redirigé après la suppression de l'objet. Vous pouvez trouver ceci dans la signature de la vue:

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'): 
+0

Je pensais que ce n'était pas nécessaire. Merci. –