Django-allauthin oletusmallit näyttävät tylsiltä eivätkä ehkä sovi tarpeisiisi. Näin voit ohittaa ne.
django-allauth on Django-paketti, jonka avulla voit rakentaa todennusjärjestelmän Django-sovelluksille nopeasti ja helposti. Siinä on sisäänrakennetut mallit, joiden avulla voit keskittyä sovelluksesi muihin tärkeisiin osiin.
Vaikka sisäänrakennetut mallit ovat hyödyllisiä, sinun kannattaa muuttaa niitä, koska niillä ei ole paras käyttöliittymä.
Kuinka asentaa ja määrittää django-allauth
Noudattamalla muutamaa suoraviivaista vaihetta voit asentaa django-allauthin saumattomasti Django-projektiisi.
- Voit asentaa django-allauth paketti käyttämällä Pip-pakettienhallintaa:
pip install django-allauth
- Lisää nämä sovellukset asennettuihin sovelluksiin projektisi asetustiedostossa:
INSTALLED_APPS = [
Add your other apps here# Djang-allauth configuration apps
'django.contrib.sites',
'allauth',
'allauth.account',
'allauth.socialaccount', # add this if you want to enable social authentication
] - Lisää todennustaustaohjelmat asetustiedostoosi:
AUTHENTICATION_BACKENDS = [
'django.contrib.auth.backends.ModelBackend',
'allauth.account.auth_backends.AuthenticationBackend',
] - Lisää sivustotunnus projektiisi:
SITE_ID = 1
- Määritä URL-osoitteet django-allauthille:
from django.urls import path, include
urlpatterns = [
# Djang-allauth url pattern
path('accounts/', include('allauth.urls')),
]
Jos teet yllä olevat määritykset oikein, sinun pitäisi nähdä tällainen malli, kun siirryt kohteeseen http://127.0.0.1:8000/accounts/signup/:
Näet luettelon käytettävissä olevista URL-osoitteista siirtymällä kohtaan http://127.0.0.1:8000/accounts/ kanssa DEBUG = Totta asetustiedostossasi.
Kirjautumismallin ohittaminen django-allauthissa
Ensin sinun on määritettävä oma malleja kansio, jos et ole tehnyt niin. Avaa asetustiedostosi ja siirry kohtaan MALLIT lista. Paikanna sen sisältä DIRS luettelo ja muokkaa sitä seuraavasti:
'DIRS': [BASE_DIR/'templates'],
Varmista, että sinulla on a malleja kansio projektisi juurihakemistossa. Voit ohittaa oletusarvoisen kirjautumismallin django-allauthissa noudattamalla näitä seuraavia vaiheita.
Vaihe 1: Luo mallitiedostosi
Sinun malleja kansio, luo uusi kansio nimeltä tili pitääksesi django-allauthiin liittyviä malleja.
Rekisteröinti- ja kirjautumismallien tulee olla signup.html ja login.html vastaavasti. Voit määrittää oikean mallin nimen avaamalla Python-virtuaaliympäristö ja navigointi kohteeseen Lib > sivustopaketit > allauth > mallit > tili kansio löytääksesi mallit. Sinun tulisi käydä koodi läpi ymmärtääksesi, miten mallit toimivat. Esimerkiksi kirjautumismallissa on tämä koodi:
Vaihe 2: Lisää HTML-koodi mallitiedostoihisi
Kun olet luonut tiedostot, sinun tulee lisätä mallillesi mukautettu HTML-koodi. Jos haluat esimerkiksi ohittaa yllä olevan kirjautumismallin, saatat haluta kopioida kaiken tiedostosta {% muuta %} lohko, joka sisältää lomakkeen ja lähetyspainikkeen, ja lisää se mukautettuun malliisi. Tässä on esimerkki:
{% extends 'base.html' %}
{% block content %}
<p>If you have not created an account yet, then please
<ahref="{{ signup_url }}">sign upa> first.p>
<formclass="login"method="POST"action="{% url 'account_login' %}">
{% csrf_token %}
{{ form.as_p }}
{% if redirect_field_value %}
<inputtype="hidden"name="{{ redirect_field_name }}"value="{{ redirect_field_value }}" />
{% endif %}
<aclass="button secondaryAction"href="{% url 'account_reset_password' %}">Forgot password?a>
<buttonclass="primaryAction"type="submit">SIgn inbutton>
form>
{% endblock content %}
Yllä oleva koodi käyttää Djangon mallin perintö periä ominaisuuksia base.html sapluuna. Varmista, että poistat tarpeettomat tunnisteet, kuten {% blocktrans %} tag. Jos olet tehnyt tämän, kirjautumissivusi pitäisi olla seuraavanlainen:
Yllä olevan kuvan ylä- ja alatunniste eroavat sinun.
Vaihe 3: Lisää mukautettuja tyylejä lomakkeeseen
Edellisessä vaiheessa kirjautumislomake esitetään kappaleena käyttämällä {{ form.as_p }} tag. Jotta voit lisätä lomakkeeseen tyylejä, sinun on tiedettävä :n arvo nimi jokaiseen syöttökenttään liittyvä attribuutti.
Voit tarkastaa sivusi saadaksesi tarvitsemasi arvot.
Yllä olevassa kuvassa näkyy nimimäärite, joka liittyy sähköposti lomakkeen kenttään.
Nyt voit lisätä lomakekentät yksitellen projektiisi. Voit lisätä sähköpostikentän esimerkiksi seuraavasti:
{{ form.login }}
<labelfor="{{form.login.id_for_label}}">Emaillabel>
{{ form.login.errors|safe }}
Sinä pystyt käytä Bootstrapia Django-projektisi kanssa muotoilemaan muotoasi helposti. Tässä on esimerkki:
<divclass="form-floating form-group">
{{ form.login }}
<labelfor="{{form.login.id_for_label}}">Emaillabel>
{{ form.login.errors|safe }}
div>
Yllä oleva koodi lisää Bootstrap-lomakeluokat lomakkeeseen. Nyt voit lisätä muut tarvitsemasi kentät ja muokata niitä haluamallasi tavalla. Jos et pidä Bootstrapin käyttämisestä muotoiluun, django-crispy-forms on vaihtoehto lomakkeiden muotoilulle. Alla olevassa esimerkissä käytetään Bootstrapia tyyliin.
<divclass="container d-flex justify-content-center align-items-center vh-100">
<formmethod="post"class="login"id="signup_form"action="{% url 'account_login' %}">
<divclass="text-center mb-4">
<h1class="h3 mb-3 font-weight-normal">Sign inh1>
div>
{{ form.non_field_errors | safe }}
{% csrf_token %}
<divclass="row g-3">
<divclass="col-12">
<divclass="form-floating form-group">
{{ form.login }}
<labelfor="{{form.login.id_for_label}}">Emaillabel>
{{ form.login.errors|safe }}
div>
div>
<divclass="col-12">
<divclass="form-floating form-group my-3">
{{ form.password }}
<labelfor="{{form.password.id_for_label}}">Passwordlabel>
{{ form.password.errors|safe }}
div>
div>
<divclass="col-12">
<divclass="form-check">
<labelfor="{{form.remember.id_for_label}}"class="form-check-label">Remember melabel>
{{ form.remember }}
div>
div>
<divclass="col-6">
{% if redirect_field_value %}
<inputtype="hidden"name="{{ redirect_field_name }}"value="{{ redirect_field_value }}" />
{% endif %}
<buttonclass="btn btn-primary w-100 py-3 bg-accent"type="submit">Sign inbutton>
<aclass="button secondaryAction text-accent"href="{% url 'account_reset_password' %}">Forgot
Password?a>
div>
div>
form>
div>
Yllä oleva koodilohko tuottaa seuraavan kuvan kaltaisen tulosteen:
Voit oppia lisää django-allauthin lomakkeista lukemalla virallinen dokumentaatio.
Ohita mikä tahansa malli django-allauthissa
django-allauth sisältää monia oletusmalleja, jotka voit ohittaa. Tämän oppaan vaiheiden avulla voit ohittaa minkä tahansa mallin django-allauthissa. Sinun kannattaa harkita tämän paketin käyttöä todennusjärjestelmän käsittelyyn, jotta voit keskittyä sovelluksesi muiden tärkeiden ominaisuuksien rakentamiseen.