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

كيفية إستخدام معامل باقي القسمة % في قوالب جانغو Django؟

Mohssen A Mohssen

السؤال

أنا أبحث عن طريقة لتنفيذ عملية باقي القسمة في أحد القوالب في جانغو Django. ما أحاول القيام به هو إضافة اسم فئة لكل عنصر رابع في الحلقة.

حاولت إستخدام كود كما يلي:

{% for p in posts %}
    <div class="post flex flex-row justify-start {% if forloop.counter0 % 4 == 0 %}bg-black{% endif %}}">

        <h2>p.title</h2>
        <div class="preview">
          <!-- ... -->
        </div>
      
        <div class="overlay">
          <!-- ... -->
        </div>
      
    </div>
{% endfor %}

لكن هذا الكود لا يعمل لأن علامة النسبة المئوية % معامل محجوزة في قوالب جانغو Django. أهناك أي طريقة أخرى لعمل هذا؟

رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 2

يمكنك استخدام علامة القالب (tamplatetag) divisibleby المدمجة في Django.

  • divisibleby: تقوم بارجاع True عندما تكون القيمة تقبل القسمة على العنصر المُدخل. مثلا:
    {{ value|divisibleby:"3" }}
    # إذا كانت القيمة = 21 فسيكون الإخراج
    # True
    # أما اذا كانت القيمة لا تقبل القسمة على 3 فسيكون الإخراج 
    # False

    إذا مثالك يُصبح:

    {% for p in posts %}
        <!-- ملاحظة: forloop.counter0 => تقوم بالعد من 0 -->
        <!-- forloop.counter0|divisibleby:'4' يكون الاخراج صحيحا عند العنصر الخامس لا الرابع -->
        <!--  لهذا عليك استعمال -->
        <!-- forloop.counter -->
        <div class="post flex flex-row justify-start {% if forloop.counter|divisibleby:'4' %}bg-black{% endif %}}">
    
            <h2>p.title</h2>
            <div class="preview">
              <!-- ... -->
            </div>
          
            <div class="overlay">
              <!-- ... -->
            </div>
          
        </div>
    {% endfor %}

     

رابط هذا التعليق
شارك على الشبكات الإجتماعية

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

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

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

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

  • إعلانات

  • تابعنا على



×
×
  • أضف...