اذهب إلى المحتوى

السؤال

Recommended Posts

  • 0
نشر

يمكنك كتابة عبارة if statement في العرض (views) في Django من خلال استخدام Syntax الخاصة بـ Django داخل HTML template للتحقق من شروط if التي وضعتها في views.py. على سبيل المثال ، يمكن استخدام الجملة التالية لاختبار ما إذا كان المستخدم قد سجل الدخول:

{% if request.user.is_authenticated %}
    مرحباً بك, {{ request.user.username }}!
{% else %}
    قم بتسجيل الدخول من فضلك.
{% endif %}

بهذه الطريقة ، يمكن التأكد من حدوث إجراءات معينة عبر اتباع شروط if في Django views واستخدامها في القالب (template) الخاص بك.

  • 0
نشر

في في العرض (views) في Django تستطيع كتابة عبارة if statement بواسطة الشروط والتحقق منها في العرض نفسه، ومن ثم تمرير النتيجة إلى القالب (template) لعرض المحتوى المناسب بناءً على الشرط، وإليك مثالًا بسيطًا:

في views.py:

from django.shortcuts import render

def my_view(request):
    is_authenticated = request.user.is_authenticated
    return render(request, 'my_template.html', {'is_authenticated': is_authenticated})

في القالب (my_template.html):

{% if is_authenticated %}
    <p>مرحبًا بك، {{ request.user.username }}!</p>
{% else %}
    <p>قم بتسجيل الدخول من فضلك.</p>
{% endif %}

قمت  باستخدام request.user.is_authenticated للتحقق مما إذا كان المستخدم قد سجل الدخول أم لا في العرض.

ثم تمرير قيمة is_authenticated إلى القالب عن طريق الدمج مع السياق (context) عند استدعاء دالة render. في القالب، واستخدام البنية if...else لعرض المحتوى المناسب بناءً على قيمة is_authenticated.

ولاحظ أنه يجب عليك تعريف المسار المناسب في urls.py وربطه بالعرض (view) الخاص بك في Django.

  • 0
نشر

تستخدم قوالب Django علامات {% if %} و {% endif %} لإنشاء عبارات if. يتمثل بناء الجملة الأساسي لعبارة if في الشكل التالي:

{% if variable %}
<!-- الكود الذي يتم تنفيذه إذا كانت القيمة المحددة للمتغير صحيحة -->
{% endif %}


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

مثال بسيط على عبارة if في قالب Django
أحد الأمثلة البسيطة والشائعة في استخدام عبارة if في قالب Django هو عندما ترغب في التحقق مما إذا كان المستخدم المتصل حاليًا بالموقعد أم لا، ومن ثم توفير الخطوات اللازمة بناءً على حالة المصادقة. هكذا يتم تنفيذه:

<h1>مرحبًا بك في موقعي</h1>

{% if user.is_authenticated %}
    <p>مرحبًا، {{ user.username }}</p>
    <p><a href="{% url 'logout' %}">تسجيل الخروج</a></p>
{% else %}
    <p>أنت غير مسجل الدخول.</p>
    <p><a href="{% url 'login' %}">تسجيل الدخول</a></p>
{% endif %}


في هذا المثال، تقوم عبارة if بفحص خاصية user.is_authenticated لتحديد ما إذا كان المستخدم قد سجل الدخول أم لا. اعتمادًا على النتيجة، سيتم عرض محتوى مختلف في القالب. إذا كان المستخدم قد سجل الدخول، سيتم عرض "مرحبًا [اسم المستخدم]" ورابط تسجيل الخروج، وإلا فسيتم عرض "أنت غير مسجل الدخول" ورابط تسجيل الدخول.

{% else %} و {% elif %}
بالإضافة إلى الجملة if الأساسية، تدعم قوالب Django أيضًا استخدام علامات {% else %} و {% elif %}.

يمكن استخدام علامة {% else %} لتحديد كود يتم تنفيذه إذا لم يتم تلبية الشرط في عبارة if، كما فعلنا في المثال السابق، بينما يمكن استخدام علامة {% elif %} لتحديد شروط إضافية يتم فحصها.

ولكن إذا كنت تريد ربط عدة عبارات if معًا باستخدام علامة {% elif %} للتحقق من شروط إضافية، فيمكنك استخدام الشكل التالي:

{% if variable == 5 %}
    <p>المتغير يساوي 5.</p>
{% elif variable == 10 %}
    <p>المتغير يساوي 10.</p>
{% else %}
    <p>المتغير لا يساوي 5 أو 10.</p>
{% endif %}

 

  • 0
نشر

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

يمكننا كتابة عبارة شرطية في بايثون كما يلي:

username = input('username: ')
password = input('password: ')

if name == 'admin' and password == 'admin':
  print('welcome to the site')
else:
  print('wrong credientials')

طبعا هذا مثال بسيط و لكن يمكنك تطبيق نفس الفكرة بغض النظر عما يوجد داخل ال if.

أما إن كان قصدك ما ذكره المدربون في التعليقات السابقة فهذا يدعى template وليس view، حيث أن دجانغو يتبع تصميم model-view-template بحيث يكون ال model هو ما نقوم ضمنه بتخزين البيانات و معالجتها، أما ال view فهي التي تقوم بمعالجة طلب المستخدم و تنفيذ ما يلزم، أما ال template فهو من يقوم بالعرض.

طبعاً ال view هي من تقوم بعرض ال template و لكن هذا لا يعني أنها بذاتها مخصصة للعرض، حيث هي فقط تقوم بتحديد ما يجب تنفيذه.

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...