2014-05-02 13 views
5

Anziché accedere alla pagina '../account/login/' mi piacerebbe rendere disponibile per gli utenti l'accesso diretto alla home page, ad esempio. Cosa dovrei fare per renderlo possibile? Come collegare i campi di input sulla home page con allauth? Non so se questo è troppo complicato per farlo funzionare in questo modo?Accedi/Registrati direttamente sulla home page

risposta

2

C'è una soluzione che funziona per me. Non è la soluzione ottimale perché non è ASCIUTTA, quindi sarei grato se qualcuno lo migliorasse!

Fondamentalmente quello che ho fatto è di rendere il modello di login ufficiale e copiare il codice HTML del modulo. Poi ho cambiato il token csrf e gli URL e l'ho incollato sul modello della home page.

Ecco il codice di esempio per l'accesso/uscita. Puoi fare lo stesso con l'iscrizione. (Si noti che sto utilizzando solo la posta elettronica e non il nome utente per accedere, il codice potrebbe essere diverso in base alle impostazioni di allauth. Dai un'occhiata ai tuoi modelli di login e di iscrizione per vedere quali campi di input hai bisogno e i relativi nomi.)

{% load account %} 

<h1>Login/Logout</h1> 

{% if user.is_authenticated %} 
    <p>Loged in with e-mail: {{ request.user.email }}</p> 
    <a href="{% url "account_logout" %}">Logout</a> 
{% else %} 
    <form action="{% url "account_login" %}" method="post"> 
     {% csrf_token %} 
     <input type="email" placeholder="E-mail" name="login"> 
     <input type="password" placeholder="Password" name="password"> 
     <label for="id_remember_menu" class="text-primary">Remember Me:</label> 
     <input id="id_remember_menu" name="remember" type="checkbox"> 
     {% if redirect_field_value %} 
      <input type="hidden" name="{{ redirect_field_name }}" value="{{ redirect_field_value }}" /> 
     {% endif %} 
     <button type="submit">Login</button> 
     <a href="{% url 'account_reset_password' %}">Forgot Password?</a> 
    </form> 
{% endif %} 

vorrei migliorare il codice ed essere in grado di rendere il form direttamente nel modello home page con {{ form }} invece di copiare il codice HTML. Se riesco a farlo aggiornerò la risposta più tardi.

+0

Ha funzionato per te? Se è così, ti preghiamo di non dimenticare di aggiornare e accettare la risposta! Grazie – ferrangb

+0

Questo è il modo giusto per farlo, grazie! –

+0

@ferrangb hai trovato un modo per utilizzare {{form}} direttamente invece di copiare i codici HTML? – Joey

0

Se proprio devi, puoi mettere gli URL di allauth sotto un percorso diverso. allauth utilizza l'inversione dell'URL basata sul nome, quindi il nuovo prefisso del percorso verrà prelevato automaticamente.

+0

Purtroppo questo non aiuta, perché ho bisogno di avere modulo di 'login' e modulo 'iscrizione' sulla stessa pagina (home page per esempio). Ho bisogno di qualcosa del genere: http://healthifyme.com/ La maggior parte dei siti web che utilizzano allauth hanno un percorso URL predefinito (account /), ma devo davvero personalizzarlo. –

Problemi correlati