Erreur surcharge change_view Django 1.2 -> 1.4

Publié par ark le mer 10 Avr 2013 à 19:56

Après une mise à jour de Django, je me suis retrouvé avec un message d'erreur lors d'enregistrement de certains formulaires dans Django admin :

RuntimeError at /... You called this URL via POST, but the URL doesn't end in a slash and you have APPEND_SLASH set. Django can't redirect to the slash URL while maintaining POST data. Change your form to point to 127.0.0.1:8000/..../ (note the trailing slash), or set APPEND_SLASH=False in your Django settings.

J'ai biensur d'abord bêtement tenté d'ajour la variable APPEND_SLASH, mais ça n'a pas été très fructueux..
Donc après quelques recherches, j'ai trouvé la solution.

Dans le fichier admin.py, où est surchargée la méthode, il faut changer ses arguments :

def change_view(self, request, object_id, extra_context=None): 

Par :

def change_view(self, *args, **kwargs):

Et bien sur remplacer le reste de la fonction par rapport à ces nouveaux arguments, par exemple :

extra_context["mooh"] = True

Par :

kwargs["extra_context"]["mooh"] = True

Et ça devrait aller mieux maintenant !

blog comments powered by Disqus