Auparavant, j'utilisais une ancienne version de django-registration qui semble être obsolète. Comme mon serveur ne me permet pas d'installer des plugins python, j'ai besoin d'utiliser 'registration' comme une application django séparée. Maintenant, ma question est de savoir ce que je dois modifier pour que l'enregistrement fonctionne comme une application django ? Puis-je simplement copier 'registration' dans mon catalogue de projets django, l'ajouter dans les paramètres et cela devrait fonctionner ? Auparavant, il n'y avait pas de définition de 'backend', maintenant backend init avec la fonction get_backend, qui prend 'path' comme argument. Je suppose que ce chemin est envoyé via l'url, n'est-ce pas ?
url(r'^activate/(?P<activation_key>\w+)/$',
activate,
{'backend': 'registration.backends.default.DefaultBackend'},
name='registration_activate'),
Ce catalogue contient également init avec la classe DefaultBackend, avec les classes activate et register.
http://paste.pocoo.org/show/225790/
Ils utilisent tous deux des signaux. Dois-je m'occuper de ces signaux d'une manière ou d'une autre ? (Je n'ai toujours pas compris à quoi ils servent). Dernière chose. Auparavant, après l'enregistrement, il y avait une redirection vers le success_url donné ou le template défini de cette manière :
return HttpResponseRedirect(success_url or reverse('registration_complete'))
Le code responsable de cet aspect est maintenant :
if success_url is None:
to, args, kwargs = backend.post_registration_redirect(request, new_user)
return redirect(to, *args, **kwargs)
else:
return redirect(success_url)
et le post_registration_redirect :
def post_registration_redirect(self, request, user):
"""
Return the name of the URL to redirect to after successful
user registration.
"""
return ('registration_complete', (), {})
Pourquoi cette modification a-t-elle été apportée si la redirection se fait toujours vers "registration_complete" ? Les args et kwargs sont vides, alors pourquoi s'en préoccuper ?