„Django-allauth“ numatytieji šablonai atrodo neryškūs ir gali neatitikti jūsų poreikių. Štai kaip galite juos nepaisyti.

django-allauth yra Django paketas, leidžiantis greitai ir lengvai sukurti autentifikavimo sistemą Django programoms. Jame yra integruotų šablonų, leidžiančių sutelkti dėmesį į kitas svarbias programos dalis.

Nors integruoti šablonai yra naudingi, norėsite juos pakeisti, nes jie neturi geriausios vartotojo sąsajos.

Kaip įdiegti ir konfigūruoti django-allauth

Atlikę kelis paprastus veiksmus, galite sklandžiai įdiegti django-allauth į savo Django projektą.

  1. Galite įdiegti django-allauth paketą naudodami Pip paketų tvarkyklę:
    pip install django-allauth
  2. Projekto nustatymų faile pridėkite šias programas prie įdiegtų programų:
    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. Pridėkite autentifikavimo pagrindines programas prie nustatymų failo:
    instagram viewer
    AUTHENTICATION_BACKENDS = [
    'django.contrib.auth.backends.ModelBackend',
    'allauth.account.auth_backends.AuthenticationBackend',
    ]
  4. Pridėkite svetainės ID prie projekto:
    SITE_ID = 1
  5. Konfigūruokite django-allauth URL adresus:
    from django.urls import path, include

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

Jei pirmiau nurodytas konfigūracijas atliksite teisingai, naršydami turėtumėte matyti tokį šabloną http://127.0.0.1:8000/accounts/signup/:

Galite peržiūrėti galimų URL sąrašą nuėję į http://127.0.0.1:8000/accounts/ su DEBUG=Tiesa nustatymų faile.

Kaip nepaisyti prisijungimo šablono django-allauth

Pirmiausia turite sukonfigūruoti savo šablonus aplanką, jei to nepadarėte. Atidarykite nustatymų failą ir eikite į ŠABLONAI sąrašą. Jo viduje suraskite REŽ sąrašą ir pakeiskite jį taip:

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

Įsitikinkite, kad turite a šablonus aplanką savo projekto šakniniame kataloge. Galite nepaisyti numatytojo prisijungimo šablono django-allauth atlikdami šiuos kitus veiksmus.

1 veiksmas: sukurkite šablono failus

Jūsų šablonus aplanką, sukurkite naują aplanką pavadinimu sąskaitą su django-allauth susijusiems šablonams laikyti.

Registracijos ir prisijungimo šablonai turi būti signup.html ir login.html atitinkamai. Galite nustatyti teisingą šablono pavadinimą atidarę savo Python virtuali aplinka ir navigacija į Lib > svetainių paketai > allauth > šablonai > paskyra aplanką, kad rastumėte šablonus. Turėtumėte peržiūrėti kodą, kad suprastumėte, kaip veikia šablonai. Pavyzdžiui, prisijungimo šablone yra šis kodas:

2 veiksmas: pridėkite HTML kodą prie šablono failų

Sukūrę failus, turėtumėte pridėti pasirinktinį HTML kodą savo šablonui. Pavyzdžiui, norėdami nepaisyti anksčiau pateikto prisijungimo šablono, galbūt norėsite nukopijuoti viską iš {% Kitas %} bloką, kuriame yra forma ir pateikimo mygtukas, ir pridėkite jį prie pasirinkto šablono. Štai pavyzdys:

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

Aukščiau pateiktas kodas naudojamas Django šablono paveldėjimas paveldėti požymius iš base.html šabloną. Įsitikinkite, kad pašalinote nereikalingas žymas, pvz., {% blocktrans %} žyma. Jei tai padarėte, jūsų prisijungimo puslapis turėtų būti panašus į šį:

Antraštė ir poraštė aukščiau esančiame paveikslėlyje skirsis nuo jūsų.

3 veiksmas: pridėkite tinkintus stilius prie savo formos

Ankstesniame veiksme prisijungimo forma pateikiama kaip pastraipa naudojant {{ form.as_p }} žyma. Norėdami pridėti stilių į formą, turite žinoti reikšmę vardas atributas, susietas su kiekvienu įvesties lauku.

Galite patikrinti savo puslapį, kad gautumėte reikiamas vertes.

Aukščiau pateiktame paveikslėlyje parodytas pavadinimo atributas, susietas su paštu formos laukas.

Dabar savo projekte formos laukus galite pridėti atskirai. Pavyzdžiui, galite pridėti el. pašto lauką taip:

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

Tu gali naudokite „Bootstrap“ su savo „Django“ projektu kad galėtumėte lengvai formuoti savo formą. Štai pavyzdys:

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

Aukščiau pateiktas kodas prie formos prideda „Bootstrap“ formos klases. Dabar galite pridėti kitus reikalingus laukus ir pritaikyti jų stilių pagal savo pageidavimus. Jei jums nepatinka naudoti „Bootstrap“ stiliui kurti, django-crispy-forms yra alternatyva formų formavimui. Toliau pateiktame pavyzdyje stiliui sukurti naudojamas Bootstrap.

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

Aukščiau pateiktas kodo blokas pateiks išvestį, panašią į šį vaizdą:

Daugiau apie django-allauth formas galite sužinoti perskaitę oficialius dokumentus.

Nepaisyti bet kurio django-allauth šablono

django-allauth yra daug numatytųjų šablonų, kuriuos galite nepaisyti. Atlikdami šiame vadove nurodytus veiksmus, galite nepaisyti bet kurio django-allauth šablono. Turėtumėte apsvarstyti galimybę naudoti šį paketą autentifikavimo sistemai tvarkyti, kad galėtumėte sutelkti dėmesį į kitas svarbias programos funkcijas.