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

السؤال

نشر

أنا أبحث عن طريقة لتنفيذ عملية باقي القسمة في أحد القوالب في جانغو 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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...