Menu
CoddyTech

من الزائر؟

جزء من قسم المستخدمون والحسابات في رحلة Django على Coddy. الدرس 1 من 16.

كل من يفتح تطبيق الملاحظات هذا يرى جميع الملاحظات. ولكي تكون لكل شخص ملاحظاته الخاصة، يجب أن يعرف الموقع أولًا هوية زائره.

يخزّن تطبيق Django ‏django.contrib.auth الحسابات في نموذجه User: اسم مستخدم، وكلمة مرور مُجزّأة، وبريد إلكتروني. عندما يسجّل شخص الدخول، يتذكّره Django باستخدام جلسة: ملف تعريف ارتباط، وهو قيمة صغيرة يرسلها المتصفح مع كل طلب، تشير إلى صف على الخادم.

في كل طلب، يضع Django الزائر في request.user، وتصل إليه القوالب باسم user. الزائر الذي لم يسجّل الدخول هو AnonymousUser، لذا تحقّق باستخدام is_authenticated. يعرض المتجر لافتة للزوار فقط:

{% if not user.is_authenticated %}
    <p class="banner">Make an account to save your cart.</p>
{% endif %}
challenge icon

التحدي

سهل

في base.html، داخل <div class="account">:

  • يقرأ المستخدم الذي سجّل الدخول Signed in as واسم المستخدم الخاص به، مثل Signed in as ada.
  • أما جميع المستخدمين الآخرين فيقرؤون You are not signed in.

اضغط على «Run» وافتح /. ثم سجّل الدخول إلى /admin/ باسم ada (كلمة المرور coddy-pass-123)، وافتح / مرة أخرى.

جرّب بنفسك

{% load static %}
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>{% block title %}Notes{% endblock %}</title>
    <link rel="stylesheet" href="{% static 'notes/style.css' %}">
</head>
<body>
    <header>
        <a class="brand" href="{% url 'notes:list' %}">Notes</a>
        <nav>
            <a href="{% url 'notes:create' %}">New note</a>
        </nav>
        <div class="account">
        </div>
    </header>
    <main>
        {% block content %}{% endblock %}
    </main>
</body>
</html>

جميع دروس المستخدمون والحسابات

تدرّب بنفسك: Playground لـ Django