我构建了一个由django驱动的web应用程序,在这里我使用了一个名为average CGPA(avg_cgpa)的模型字段,该字段是Django模型中的DecimalField。我还在控制器/模板上使用了for循环来生成有关学生的所有单独数据。现在我的目的是比较模型每一行的avg_cgpa数据以生成新的
标签。每个学生的结果都不一样。 就像,如果avg_cgpa> 2.00,它将通过打印,否则将失败! 正如您在模板上看到的那样,我确实尝试过,但是它不起作用,请提出您有用的答案。
(Django model here)
class Management(models.Model):
student_id = models.CharField(max_length=100)
first_name = models.CharField(max_length=200)
last_name = models.CharField(max_length=200)
father_name = models.CharField(max_length=200)
mother_name = models.CharField(max_length=200)
Present_address = models.TextField(max_length=400)
Permanent_address = models.TextField(max_length=400)
contact = models.CharField(max_length=11)
avg_cgpa = models.DecimalField(max_digits=20,decimal_places=2)
def __str__(self):
return self.student_id
(Here is the template)
{% load static %}
{% include 'base.html' %}
{% block content %}
{% include 'navbar.html' %}
{% include 'banner.html' %}
<div class = "container">
<div class="row">
{% for x in student %}
<div class="col-md-4">
<div class="card" style="width: 18rem;">
<div class="card-body">
<h5 class="card-title"><strong>ID : </strong> {{ x.student_id }}</h5>
<hr class="my-4">
<img class="card-img-top" src="{% static "images/hat.png" %}"><hr class="my-4">
<h6 class="card-subtitle mb-2 text-muted"><strong><i class="far fa-user-circle"></i> </strong> {{ x.first_name }} {{ x.last_name }}</h6>
<hr class="my-4">
<p class="card-text">Father's Name : <strong>{{ x.father_name }}</strong></p>
<p class="card-text">Mother's Name : <strong>{{ x.mother_name }}</strong></p>
<p class="card-text">Address : <strong>{{ x.Permanent_address }}</strong></p>
<p class="card-text"><strong><i class="fas fa-phone"></i> {{ x.contact }}</strong> </p>
<p class="card-text">Avg CGPA : <strong>{{ x.avg_cgpa }}</strong></p>
{% if x.avg_cgpa > "2" %}
<p class="card-text">Condition : <strong>Pass</strong></p>
{% endif %}
</div>
</div>
</br>
</div>
{% endfor %}
</br>
</div>
{% include 'footer.html' %}
{% endblock%}
我确实尝试过条件是否在for循环中,但没有结果作为结果。是否可以通过在Django中比较模型数据来检索数据?
答案 0 :(得分:0)
我会考虑向您的模型添加一个属性,以返回是否通过测试
class Management(models.Model):
@property
def passed(self):
return self.avg_cgpa > 2
然后可以在模板{% if x.passed %}
中使用它,也可以将其用于代码的其他部分,并且更具可读性