Je travaille sur un système d'authentification basé sur un magasin utilisant Django, j'essaye de faire en sorte que l'URL soit celle qui spécifie quel magasin l'utilisateur essaie de se connecter. Ex

login/store-name

Puis connectez l'utilisateur à la boutique demandée. Ma question est, existe-t-il un moyen de le faire en utilisant le formulaire / mécanisme de connexion intégré de django ou devrais-je créer mon propre formulaire de connexion et ma propre vue.

0
Paulo 9 nov. 2011 à 01:40

3 réponses

Meilleure réponse

À mon avis, vous devez créer votre propre formulaire et une vue de connexion:

from django.contrib.auth import authenticate, login

def my_view(request):
    username = request.POST['username']
    password = request.POST['password']
    user = authenticate(username=username, password=password)
    if user is not None:
        if user.is_active  *** and user can login in this store ***:
            login(request, user)
            # Redirect to a success page.
        else:
            # Return a 'disabled account' error message
    else:
        # Return an 'invalid login' error message.

"et l'utilisateur peut se connecter dans ce magasin": obtenir le chemin de la demande et le vérifier.

1
dani herrera 9 nov. 2011 à 08:49

Je pense que vous pouvez le faire uniquement dans urls.py

urlpatterns = patterns('',
    url(r'^login/store-name-1/$', login, name="login"),
    url(r'^login/store-name-2/$', login, name="login"),
    url(r'^accounts/logout/$', logout, {'next_page': '/',}, name='logout')
)

Je ne sais pas exactement ce que tu veux faire?

1
rh0dium 8 nov. 2011 à 22:26

Si vous souhaitez des connexions distinctes pour chaque magasin, vous devrez personnaliser le formulaire de connexion, car le package d'authentification django créera des utilisateurs universels pour tous vos magasins.

1
Kevin Mooney 8 nov. 2011 à 23:15