Problema di autenticazione di Django: come posso costringere gli utenti attivi a configurare un profilo prima?
-
29-10-2019 - |
Domanda
Mi sono messo in un po 'di sottaceto. Uso spesso Django-registrazione e sembra funzionare per la maggior parte delle situazioni. Tuttavia, voglio richiedere agli utenti di creare il proprio profilo (ad esempio: informazioni demografiche) Prima che possano visitare una qualsiasi delle altre pagine.
Questo è il modo in cui desidero eseguire la configurazione corrente:
- Il visitatore compila il modulo di registrazione -(Invia) --->
- Verifica e -mail dell'utente -(Link crea utente attivo) --->
- -(reindirizzato alla vista del profilo) --->
- L'utente compila il modulo del profilo -(Invia)->
- L'utente può ora accedere al resto del sito Web
C'è un modo consigliato per farlo?
Soluzione
Uno dei modi per farlo sarebbe usare il tuo @profile_required
decoratore piuttosto che il Django incorporato login_required
Su tutte le tue opinioni.
@login_required
def profile_required(func,request,*args,**kwargs):
has_profile = request.user.profile_set.count()
if not has_profile:
return redirect('create_profile')
return func(request,*args,**kwargs)
Quindi su ogni vista si desidera avere un utente con una visita al profilo, solo:
@profile_required
def my_awesome_view(request):
...
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow