تسجيل الدخول
جزء من قسم المستخدمون والحسابات في رحلة Django على Coddy. الدرس 2 من 16.
يمكن للموقع معرفة من سجّل الدخول، لكن لا توجد فيه صفحة لتسجيل الدخول. لدى Django العرض LoginView. يضيفه سطر واحد في urls.py الخاص بالمشروع، مع صفحات تسجيل الخروج وكلمة المرور:
path("accounts/", include("django.contrib.auth.urls")),الآن أصبح /accounts/login/ موجودًا، واسمه login. يعرض العرض registration/login.html مع form يحتوي على حقلَي username وpassword. هذا القالب من مسؤوليتك: نموذج POST عادي. يبحث Django في المجلد templates/ لكل تطبيق. يبدأ المسار بـ registration/، وليس notes/، لأن عرض Django لا يعرف تطبيقك.
بعد تسجيل دخول ناجح، يعيد العرض التوجيه إلى LOGIN_REDIRECT_URL. القيمة الافتراضية، /accounts/profile/، غير موجودة هنا، لذا عيّنها في settings.py.
التحدي
سهلأضف صفحة لتسجيل الدخول.
- في
mysite/urls.py، أدرجdjango.contrib.auth.urlsضمنaccounts/. - أنشئ
notes/templates/registration/login.htmlممتدًا منnotes/base.html، يعرضformداخل نموذج POST مع{% csrf_token %}وزرLog in. - في
settings.py، عيّنLOGIN_REDIRECT_URLإلى"/". - في
base.html، أضف للزوار غير المسجلين رابطًا باسمLog inيشير إلى{% url 'login' %}.
سجّل الدخول باسم ada (كلمة المرور coddy-pass-123): سيظهر في الترويسة «تم تسجيل الدخول باسم ada».
جرّب بنفسك
from django.contrib import admin
from django.urls import include, path
urlpatterns = [
path("admin/", admin.site.urls),
path("", include("notes.urls")),
]
جميع دروس المستخدمون والحسابات
تدرّب بنفسك: Playground لـ Django