Donc j'utilise l'application Django-Inscription pour implémenter une page d'enregistrement de l'utilisateur pour mon site. J'ai utilisé les backends de Django.Simple vues qui permet aux utilisateurs de se connecter immédiatement après l'inscription. Ma question est de savoir comment puis-je les rediriger vers la page de mon autre application située dans le même répertoire que le projet.
Voici ce que mes URLs principales est: P>
from django.conf import settings from django.contrib.auth import authenticate from django.contrib.auth import login from django.contrib.auth.models import User from registration import signals from registration.views import RegistrationView as BaseRegistrationView class RegistrationView(BaseRegistrationView): """ A registration backend which implements the simplest possible workflow: a user supplies a username, email address and password (the bare minimum for a useful account), and is immediately signed up and logged in). """ def register(self, request, **cleaned_data): username, email, password = cleaned_data['username'], cleaned_data['email'], cleaned_data['password1'] User.objects.create_user(username, email, password) new_user = authenticate(username=username, password=password) login(request, new_user) signals.user_registered.send(sender=self.__class__, user=new_user, request=request) return new_user def registration_allowed(self, request): """ Indicate whether account registration is currently permitted, based on the value of the setting ``REGISTRATION_OPEN``. This is determined as follows: * If ``REGISTRATION_OPEN`` is not specified in settings, or is set to ``True``, registration is permitted. * If ``REGISTRATION_OPEN`` is both specified and set to ``False``, registration is not permitted. """ return getattr(settings, 'REGISTRATION_OPEN', True) def get_success_url(self, request, user): return (user.get_absolute_url(), (), {})
3 Réponses :
Ne modifiez pas le code dans le module code> enregistrement code>. Au lieu de cela, Sous-classez l'enregistrement code> code> et remplacez la méthode code> get_success_url code> pour renvoyer l'URL souhaitée.
urlpatterns = [ # your custom registration view url(r'^register/$', MyRegistrationView.as_view(), name='registration_register'), # the rest of the views from the simple backend url(r'^register/closed/$', TemplateView.as_view(template_name='registration/registration_closed.html'), name='registration_disallowed'), url(r'', include('registration.auth_urls')), ]
Où est-ce que je mets exactement la classe myregistrationView? Est-ce que ça marche sur les points de vue.py dans le dossier Backend.Simple ou celui dans le dossier d'inscription?
Comme je l'ai dit ci-dessus, ne changez pas le code dans le module d'enregistrement. Cela en ferait beaucoup, beaucoup plus difficile de passer à la prochaine version de Django-Enregistrement. Vous pouvez mettre la classe dans l'une des visites de votre propre application.py. Vous pouvez l'inclure dans les urls.py code> si vous préférez, car il n'y a que trois lignes longues.
J'ai donc essayé cela, j'ai mis les deux blocs de code dans les backends.simple.urls.py depuis, le fichier URLs.py principal dans mon dossier de projet fait appel à la simple.urls comme vous pouvez le constater. Il ne fonctionne toujours pas et redirige de la page d'utilisateur / nom d'utilisateur juste après l'inscription (pas de connexion)
J'ai déjà dit déjà de ne pas modifier le code dans le module d'enregistrement. Puisque vous essayez toujours de modifier le backends.simple.urls.py code>, je ne peux plus vous aider.
Je l'obtiens que je ne devrais pas modifier le code dans le module d'enregistrement, mais les modifications que j'ai faites dans les backends.simple.urls.py devraient le faire fonctionner correctement? Laissez-moi l'essayer exactement de votre chemin et revenez à vous. Merci beaucoup pour l'aide
Si vous le souhaitez, vous pouvez modifier le fichier suivant success_url = getattr (paramètres, 'Simple_backend_redirect_url', '/'), P>
success_url = getattr (paramètres, 'Simple_backend_redirect_url', '/ Téléchargement / nouveau'), P>
Cordialement. P>
diego p>
J'utilise django_registration 3.1 Package. J'ai posté tous les 3 fichiers (vues.py urls.pyforms.py) qui sont nécessaires pour utiliser ce package. Pour rediriger l'utilisateur à une URL personnalisée sur l'enregistrement de réussite, créez une vue sur les sous-classes Inscriptionview. Passer dans un succès_url de votre choix.
vues.py: strong> p> formes.py: strong> p>