كيفية تجاوز القوالب الافتراضية في Django-Allauth

كيفية تجاوز القوالب الافتراضية في Django-Allauth
القراء مثلك يساعدون في دعم MUO. عند إجراء عملية شراء باستخدام الروابط الموجودة على موقعنا، قد نكسب عمولة تابعة. اقرأ أكثر.

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





فيديو MUO لهذا اليوم قم بالتمرير للمتابعة مع المحتوى

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





كيفية توصيل القرص الصلب بجهاز كمبيوتر محمول

كيفية تثبيت وتكوين 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. أضف معرف موقع إلى مشروعك:
     SITE_ID = 1 
  5. قم بتكوين عناوين 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/ مع تصحيح=صحيح في ملف الإعدادات الخاص بك.



  صفحة 404 في وضع Django DEBUG، تعرض قائمة بأنماط URL المتوفرة في Django-allauth

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

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

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

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





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

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

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





  كتلة رمز تسجيل الدخول الافتراضية لـ django allauth

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

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

 {% extends 'base.html' %} 
{% block content %}
<p>If you have not created an account yet, then please
    <a href="{{ signup_url }}">sign up</a> first.</p>
    
    <form class="login" method="POST" action="{% url 'account_login' %}">
      {% csrf_token %}
      {{ form.as_p }}
      {% if redirect_field_value %}
      <input type="hidden" name="{{ redirect_field_name }}" value="{{ redirect_field_value }}" />
      {% endif %}
      <a class="button secondaryAction" href="{% url 'account_reset_password' %}">Forgot password?</a>
      <button class="primaryAction" type="submit">SIgn in</button>
    </form>
    {% endblock content %}

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

  صفحة تسجيل دخول تحتوي على رأس وتذييل جميلين

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

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

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

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

كلها ألعاب ps4 متوافقة مع ps5
  متصفح's dev tools showing the code for a login page

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

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

 {{ form.login }} 
<label for="{{form.login.id_for_label}}">Email</label>
{{ form.login.errors|safe }}

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

 <div class="form-floating form-group"> 
{{ form.login }}
<label for="{{form.login.id_for_label}}">Email</label>
{{ form.login.errors|safe }}
</div>

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

 <div class="container d-flex justify-content-center align-items-center vh-100"> 
    <form method="post" class="login" id="signup_form" action="{% url 'account_login' %}">
        <div class="text-center mb-4">
            <h1 class="h3 mb-3 font-weight-normal">Sign in</h1>
        </div>
        {{ form.non_field_errors | safe }}
        {% csrf_token %}
        <div class="row g-3">
            <div class="col-12">
                <div class="form-floating form-group">
                    {{ form.login }}
                    <label for="{{form.login.id_for_label}}">Email</label>
                    {{ form.login.errors|safe }}
                </div>
            </div>
            <div class="col-12">
                <div class="form-floating form-group my-3">
                    {{ form.password }}
                    <label for="{{form.password.id_for_label}}">Password</label>
                    {{ form.password.errors|safe }}
                </div>
            </div>
            <div class="col-12">
                <div class="form-check">
                    <label for="{{form.remember.id_for_label}}" class="form-check-label">Remember me</label>
                    {{ form.remember }}
                </div>
            </div>
            <div class="col-6">
                {% if redirect_field_value %}
                <input type="hidden" name="{{ redirect_field_name }}" value="{{ redirect_field_value }}" />
                {% endif %}
                <button class="btn btn-primary w-100 py-3 bg-accent" type="submit">Sign in</button>
                <a class="button secondaryAction text-accent" href="{% url 'account_reset_password' %}">Forgot
                    Password?</a>
            </div>
        </div>
    </form>
</div>

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

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

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

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

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

ما هو التلفاز الذكي؟