Privzete predloge django-allauth so videti neumne in morda ne ustrezajo vašim potrebam. Evo, kako jih lahko preglasite.

django-allauth je paket Django, ki vam omogoča hitro in enostavno izgradnjo sistema za preverjanje pristnosti za vaše aplikacije Django. Ima vgrajene predloge, ki vam omogočajo, da se osredotočite na druge pomembne dele vaše aplikacije.

Čeprav so vgrajene predloge koristne, jih boste želeli spremeniti, ker nimajo najboljšega uporabniškega vmesnika.

Kako namestiti in konfigurirati django-allauth

Če sledite nekaj enostavnim korakom, lahko brez težav namestite django-allauth v svoj projekt Django.

  1. Lahko namestite django-allauth paket z uporabo upravitelja paketov Pip:
    pip install django-allauth
  2. V datoteki z nastavitvami projekta dodajte te aplikacije svojim nameščenim aplikacijam:
    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
    ]

  3. instagram viewer
  4. V datoteko z nastavitvami dodajte ozadja za preverjanje pristnosti:
    AUTHENTICATION_BACKENDS = [
    'django.contrib.auth.backends.ModelBackend',
    'allauth.account.auth_backends.AuthenticationBackend',
    ]
  5. Svojemu projektu dodajte ID mesta:
    SITE_ID = 1
  6. Konfigurirajte URL-je za django-allauth:
    from django.urls import path, include

    urlpatterns = [
    # Djang-allauth url pattern
    path('accounts/', include('allauth.urls')),
    ]

Če zgornje konfiguracije izvedete pravilno, bi morali videti takšno predlogo, ko se pomaknete na http://127.0.0.1:8000/accounts/signup/:

Seznam razpoložljivih URL-jev si lahko ogledate tako, da se pomaknete na http://127.0.0.1:8000/accounts/ z DEBUG=Res v datoteki z nastavitvami.

Kako preglasiti prijavno predlogo v django-allauth

Najprej morate konfigurirati svoj predloge mapo, če tega še niste storili. Odprite datoteko z nastavitvami in se pomaknite do PREDLOGE seznam. Znotraj nje poiščite DIRS seznam in ga spremenite takole:

'DIRS': [BASE_DIR/'templates'],

Prepričajte se, da imate a predloge mapo v korenskem imeniku vašega projekta. Privzeto predlogo za prijavo v django-allauth lahko preglasite tako, da sledite naslednjim korakom.

1. korak: Ustvarite svoje datoteke predloge

V vašem predloge ustvarite novo mapo z imenom račun za shranjevanje predlog, povezanih z django-allautom.

Predloge za registracijo in prijavo bi morale biti prijava.html in prijava.html oz. Pravilno ime predloge lahko določite tako, da odprete svojo Virtualno okolje Python in navigacijo do Lib > site-packages > allauth > templates > account mapo za iskanje predlog. Preučiti morate kodo, da boste razumeli, kako predloge delujejo. Predloga za prijavo ima na primer to kodo:

2. korak: dodajte kodo HTML datotekam predloge

Ko ustvarite datoteke, dodajte kodo HTML po meri za svojo predlogo. Če želite na primer preglasiti zgornjo predlogo za prijavo, boste morda želeli kopirati vse iz {% else %} blok, ki vsebuje obrazec in gumb za oddajo, in ga dodajte svoji predlogi po meri. Tukaj je primer:

{% 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 %}

Zgornja koda uporablja Djangovo dedovanje predloge podedovati lastnosti od base.html predlogo. Prepričajte se, da ste odstranili nepotrebne oznake, kot je {% blocktrans %} oznaka. Če ste to storili, bi morala biti vaša prijavna stran podobna tej:

Glava in noga na zgornji sliki se bosta razlikovali od vaših.

3. korak: obrazcu dodajte sloge po meri

V prejšnjem koraku je obrazec za prijavo upodobljen kot odstavek z uporabo {{ form.as_p }} oznaka. Če želite svojemu obrazcu dodati sloge, morate poznati vrednost ime atribut, povezan z vsakim vnosnim poljem.

Svojo stran lahko pregledate, da dobite vrednosti, ki jih potrebujete.

Zgornja slika prikazuje atribut imena, povezan z E-naslov polje obrazca.

Zdaj lahko dodate polja obrazca posamično v svoj projekt. E-poštno polje lahko na primer dodate takole:

{{ form.login }}
<labelfor="{{form.login.id_for_label}}">Emaillabel>
{{ form.login.errors|safe }}

Ti lahko uporabite Bootstrap s svojim projektom Django za preprosto oblikovanje obrazca. Tukaj je primer:

<divclass="form-floating form-group">
{{ form.login }}
<labelfor="{{form.login.id_for_label}}">Emaillabel>
{{ form.login.errors|safe }}
div>

Zgornja koda doda obrazcu razrede Bootstrap. Zdaj lahko dodate druga polja, ki jih potrebujete, in jih oblikujete po svojih željah. Če ne uživate v uporabi Bootstrapa za oblikovanje, django-crispy-forms je alternativa oblikovanju vaših oblik. Spodnji primer uporablja Bootstrap za oblikovanje.

<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>

Zgornji blok kode bo ustvaril izhod, podoben naslednji sliki:

Več o obrazcih v django-allauth lahko izveste tako, da preberete uradna dokumentacija.

Preglasi katero koli predlogo v django-allauth

django-allauth vsebuje veliko privzetih predlog, ki jih lahko preglasite. S koraki v tem priročniku lahko preglasite katero koli predlogo v django-allauth. Razmislite o uporabi tega paketa za upravljanje vašega sistema za preverjanje pristnosti, tako da se lahko osredotočite na gradnjo drugih pomembnih funkcij vaše aplikacije.