如果条件在Django模板的内部循环中不起作用

2024-09-20 23:02:53 发布

您现在位置:Python中文网/ 问答频道 /正文

我不知道是什么问题,我已经在这里呆了好几个小时了。可能会有重复的问题,但没有一个能让我摆脱困境。你知道吗

我在内环中使用if条件来检查inner的属性是否等于outer循环,但是if条件从不为true,即使数据相同。你知道吗

我已经单独打印了数据,两个属性都打印了数据意味着数据是正确的。但当我使用if条件时,它会转到else

数据

以下是我正在处理的数据:

activityy.activity_name = [Table Tennis,Swimming Pool, Football ] 
slot.activity = [Table Tennis,Table Tennis,Table Tennis,Table Tennis,Swimming Pool, Football]

你知道吗活动.html你知道吗

{% for activityy in all_activities%}
    <div style="margin-left: 450px; padding: 15px; border-radius: 5px; background-color: #dfdfdf;height: 150px; width: 800px; margin-top: 20px; text-align: center">
    {% for slot in all_slots  %}
        {% if slot.activity == activityy.activity_name %}
            <div style="background-color: #3a589a; padding: 15px; width: 120px; height: 120px; float: left; border-radius: 5px;">
                <span style="color: #f1f1f1; font-size: 20px;"> {{ activityy.activity_name}}</span><br>
            </div>
        {% else %}
            <div style="background-color: #589a; padding: 15px; width: 120px; height: 120px; float: left; border-radius: 5px;">
                <span style="color: #f1f1f1; font-size: 20px;"> {{ slot.activity}}</span><br>
            </div>
        {% endif %}
    {% endfor %}
    </div>
{% endfor %}

你知道吗视图.py你知道吗

def activities(request):
    if request.user.is_authenticated:
        template = loader.get_template('sklc/activities.html')
        slots = []
        now = datetime.datetime.now()
        datee = now.strftime("%Y-%m-%d")
        if request.method == 'POST':
            dat = request.POST['date']
            if dat:
                datee = dat

        print("dateesss: " , datee)
        activitiess = Activities.objects.all();
        for activityy in activitiess:
            slot = ActivitySlots.objects.filter(dates=datee).filter(activity__activity_name=activityy.activity_name)
            for slott in slot:
                slots.append(slott)

        context = {
            'all_activities': activitiess,
            'all_slots': slots
        }
        return HttpResponse(template.render(context, request))
    else:
        messages.error(request, "Please Login First")
        return redirect("/login")

你知道吗型号.py你知道吗

class Activities(models.Model):
    activity_name = models.CharField(max_length=50)

    def __str__(self):
        return self.activity_name

class ActivitySlots(models.Model):
    dates = models.DateField()
    available = models.BooleanField()
    activity = models.ForeignKey(Activities)
    time = models.CharField(max_length=50)

    def __str__(self):
        return self.time

Tags: 数据namedivifstylemodelsrequesttable
1条回答
网友
1楼 · 发布于 2024-09-20 23:02:53

我通过使用

{% if slot.activity == activityy %}

但仍然不知道为什么它不能与activityy.activity\u名称因为活动y活动y\u activity\u name打印的是同一个东西。你知道吗

相关问题 更多 >

    热门问题