تبدو القوالب الافتراضية لـ django-allauth غير واضحة وقد لا تناسب احتياجاتك. وإليك كيف يمكنك تجاوزها.

django-allauth عبارة عن حزمة Django تتيح لك إنشاء نظام مصادقة لتطبيقات Django الخاصة بك بسرعة وسهولة. يحتوي على قوالب مدمجة تتيح لك التركيز على الأجزاء المهمة الأخرى من تطبيقك.

على الرغم من أن القوالب المضمنة مفيدة، إلا أنك ستحتاج إلى تغييرها لأنها لا تحتوي على أفضل واجهة مستخدم.

كيفية تثبيت وتكوين Django-Allauth

باتباع بعض الخطوات المباشرة، يمكنك تثبيت Django-Allauth بسهولة في مشروع Django الخاص بك.

  1. يمكنك التثبيت جانغو-Allauth الحزمة باستخدام مدير الحزم Pip:
    pip install django-allauth
  2. في ملف إعدادات مشروعك، أضف هذه التطبيقات إلى تطبيقاتك المثبتة:
    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. أضف واجهات المصادقة الخلفية إلى ملف الإعدادات الخاص بك:
    AUTHENTICATION_BACKENDS = [
    'django.contrib.auth.backends.ModelBackend',
    'allauth.account.auth_backends.AuthenticationBackend',
    ]
  4. instagram viewer
  5. أضف معرف موقع إلى مشروعك:
    SITE_ID = 1
  6. قم بتكوين عناوين URL لـ django-allauth:
    from django.urls import path, include

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

إذا قمت بالتكوينات المذكورة أعلاه بشكل صحيح، فيجب أن تشاهد قالبًا مثل هذا عند الانتقال إلى http://127.0.0.1:8000/accounts/signup/:

يمكنك الاطلاع على قائمة عناوين URL المتاحة من خلال الانتقال إلى http://127.0.0.1:8000/accounts/ مع تصحيح=صحيح في ملف الإعدادات الخاص بك.

كيفية تجاوز قالب تسجيل الدخول في Django-Allauth

أولا، تحتاج إلى تكوين الخاص بك قوالب المجلد إذا لم تكن قد قمت بذلك. افتح ملف الإعدادات الخاص بك وانتقل إلى قوالب قائمة. داخله، حدد موقع ديرس القائمة وتعديلها هكذا:

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

تأكد من أن لديك قوالب المجلد في الدليل الجذر لمشروعك. يمكنك تجاوز قالب تسجيل الدخول الافتراضي في Django-allauth باتباع الخطوات التالية.

الخطوة 1: إنشاء ملفات القالب الخاصة بك

في الخاص بك قوالب المجلد، قم بإنشاء مجلد جديد يسمى حساب للاحتفاظ بالقوالب المتعلقة بـ Django-Allauth.

يجب أن تكون قوالب التسجيل وتسجيل الدخول Signup.html و تسجيل الدخول.html على التوالى. يمكنك تحديد اسم القالب الصحيح عن طريق فتح ملف بيئة بايثون الافتراضية والانتقال إلى Lib > حزم الموقع > allauth > القوالب > الحساب المجلد للعثور على القوالب. يجب عليك الاطلاع على الكود لفهم كيفية عمل القوالب. على سبيل المثال، قالب تسجيل الدخول يحتوي على هذا الكود:

الخطوة 2: أضف كود HTML إلى ملفات القالب الخاصة بك

بعد إنشاء ملفاتك، يجب عليك إضافة كود HTML المخصص للقالب الخاص بك. على سبيل المثال، لتجاوز قالب تسجيل الدخول أعلاه، قد ترغب في نسخ كل شيء من ملف {٪ آخر ٪} الكتلة التي تحتوي على زر النموذج والإرسال، وقم بإضافتها إلى القالب المخصص الخاص بك. هنا مثال:

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

يستخدم الكود أعلاه وراثة قالب جانغو ليرث الميزات من base.html نموذج. تأكد من إزالة العلامات غير الضرورية مثل {% بلوكترانس %} بطاقة شعار. إذا قمت بذلك، فيجب أن تكون صفحة تسجيل الدخول الخاصة بك مشابهة لما يلي:

سيكون الرأس والتذييل في الصورة أعلاه مختلفين عن رأسك وتذييله.

الخطوة 3: إضافة أنماط مخصصة إلى النموذج الخاص بك

في الخطوة السابقة، يتم عرض نموذج تسجيل الدخول كفقرة باستخدام الأمر {{form.as_p }} بطاقة شعار. لإضافة أنماط إلى النموذج الخاص بك، تحتاج إلى معرفة قيمة اسم السمة المرتبطة بكل حقل إدخال.

يمكنك فحص صفحتك للحصول على القيم التي تحتاجها.

توضح الصورة أعلاه سمة الاسم المرتبطة بـ بريد إلكتروني مجال النموذج.

الآن، يمكنك إضافة حقول النموذج بشكل فردي في مشروعك. على سبيل المثال، يمكنك إضافة حقل البريد الإلكتروني مثل هذا:

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

أنت تستطيع استخدم Bootstrap مع مشروع Django الخاص بك لتصميم النموذج الخاص بك بسهولة. هنا مثال:

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

يضيف الكود أعلاه فئات نموذج Bootstrap إلى النموذج. الآن، يمكنك إضافة الحقول الأخرى التي تحتاجها وتصميمها حسب تفضيلاتك. إذا كنت لا تستمتع باستخدام Bootstrap للتصميم، يعد Django-crispy-forms بديلاً لتصميم النماذج الخاصة بك. يستخدم المثال أدناه 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>

ستنتج كتلة التعليمات البرمجية أعلاه مخرجات مشابهة للصورة التالية:

يمكنك معرفة المزيد حول النماذج في Django-Allauth من خلال قراءة ملف الوثائق الرسمية.

تجاوز أي قالب في Django-Allauth

يحتوي django-allauth على العديد من القوالب الافتراضية التي يمكنك تجاوزها. باستخدام الخطوات الواردة في هذا الدليل، يمكنك تجاوز أي قالب في Django-Allauth. يجب أن تفكر في استخدام هذه الحزمة للتعامل مع نظام المصادقة الخاص بك، حتى تتمكن من التركيز على بناء الميزات المهمة الأخرى لتطبيقك.