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

السؤال

نشر (معدل)

أحاول تحويل موقع مبني بإستخدام PHP إلى جانغو Django ويوجد في الموقع شريط تنقل Navbar، وفي الروابط الموجودة في هذا الشريط يتم إضافة الصنف .active إذا كانت مسار الصفحة الحالي هو مسار الرابط href.

في كود PHP، يتم التحقق من عنوان URL الحالي لكل رابط في شريط التنقل ليتم إضافة صنف CSS Class بالشكل التالي:

<a href="/signin" class="<?php echo $_SERVER["REQUEST_URI"] == "/signin" ? "active": ""; ?>">Signin</a>
<a href="/signup" class="<?php echo $_SERVER["REQUEST_URI"] == "/signup" ? "active": ""; ?>">Signup</a>
<a href="/" class="<?php echo $_SERVER["REQUEST_URI"] == "/" ? "active": ""; ?>">Home</a>

هل هناك طريقة أفضل في جانغو Django للتحقق من أن الرابط يساوي المسار الحالي URL؟ وكيف يمكنني الحصول على عنوان URL الخاص بالصفحة الحالية في القالب Template؟

تم التعديل في بواسطة Mohssen A Mohssen

Recommended Posts

  • 1
نشر

توجد طريقتين للوصول إلى ما ترغب به:

الطريقة الأولى:

  • استخدم {{request.path}} داخل القالب (Template)، ستقوم بإرجاع الرابط (URL) الخاص بالصفحة التي أنت فيها ، ثم قم بالتحقق من أنه يساوي القيمة التي أنت تريدها باستخدام أداة الشرط IF على الشكل التالي:
<a href="/signin" class="{% if request.path == '/signin' %} active {% endif %}">Signin</a>
<a href="/signup" class="{% if request.path == '/signup' %} active {% endif %}">Signup</a>
<a href="/" class="{% if request.path == '/' %} active {% endif %}">Home</a>

الطريقة الثانية:

  • قُم بإنشاء متغيرات داخل دوال كل رابط، وهذه المتغيرات قم بارسالها للقالب عند عرضه. 
def signup_view(request):
	....
    
    #قم بإنشاء المتغير
    #signup_page
    #وإرساله إلى القالب
    
    return render(request, "signup_template.html", {"sigup_page": True})
  
def signin_view(request):
	....
	return render(request, "signup_template.html", {"signin_page": True})
  
def home_view(request):
	....
	return render(request, "signup_template.html", {"home_page": True})

بعدها استخدم المتغيرات في القالب:

<a href="/signin" class="{% if signin_page %} active {% endif %}">Signin</a>
<a href="/signup" class="{% if signup_page %} active {% endif %}">Signup</a>
<a href="/" class="{% if home_page %} active {% endif %}">Home</a>

 

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

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

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

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...