我无法过滤我的模型,例如我需要在结果中显示,请帮助,谢谢
型号
class Group(models.Model):
title = models.CharField(max_length=200, default=0)
date_pub = models.DateTimeField(auto_now_add=True)
completed = models.BooleanField(default=False)
def __str__(self):
return self.title
def datepublished(self):
return self.date_pub.strftime('%d.%m.%Y')
class Student(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
group = models.ForeignKey(Group,on_delete=models.CASCADE,default=0)
rating = models.CharField(default='5', max_length=200)
date_pub = models.DateTimeField(auto_now_add=True)
completed = models.BooleanField(default=False)
def __str__(self):
return self.user.username
观看次数
def groups(request):
groups = Group.objects.all()
context = {
'groups': groups
}
return render(request, 'panel/panel_groups.html', context)
html
{% for i in groups %}
<tr>
<td>{{ i.datepublished }}</td>
<td>{{ i.title }}</td>
<td>count</td>
<td>
<a href="{% url 'groups_detail' i.id %}" class="btn btn-secondary">
<i class="fas fa-angle-double-right"></i> Details
</a>
</td>
</tr>
{% endfor %}
您可以用学生人数注释Group
:
from django.db.models import Count
def groups(request):
groups = Group.objects.annotate(nstud=Count('student'))
context = {
'groups': groups
}
return render(request, 'panel/panel_groups.html', context)
然后在模板中,您可以访问此查询集产生的.nstud
的Group
属性:
{% for i in groups %}
<tr>
<td>{{ i.datepublished }}</td>
<td>{{ i.title }}</td>
<td>{{ i.nstud }}</td>
<td>
<a href="{% url 'groups_detail' i.id %}" class="btn btn-secondary">
<i class="fas fa-angle-double-right"></i> Details
</a>
</td>
</tr>
{% endfor %}