我正在尝试执行使用注释的查询。但是问题是我需要注释2个值,而该项目在我的模板中没有显示2次。.这是为了更好地理解文件。
这些是我使用的模型:
class Daily(models.Model):
date = models.DateTimeField(auto_now=True)
text = models.CharField(max_length=80) #
maden = models.IntegerField(default=0) #
maden_from_type = models.ForeignKey(Type, on_delete=CASCADE, blank=True, null=True)
maden_from_cat = models.ForeignKey(Category, on_delete=CASCADE, blank=True, null=True)
da2en = models.IntegerField(default=0)
da2en_from_type = models.ForeignKey(Type, on_delete=CASCADE, related_name='da2en_from_type', blank=True, null=True)
da2en_from_cat = models.ForeignKey(Category, on_delete=CASCADE, related_name='da2en_from_cat', blank=True,
null=True)
farm = models.ForeignKey(Farm, on_delete=CASCADE)
is_invoice = models.BooleanField(default=False)
class Type(models.Model):
type_name = models.CharField(max_length=80)
def __str__(self):
return self.type_name
class Category(models.Model):
category_name = models.CharField(max_length=80)
type = models.ForeignKey(Type, on_delete=CASCADE)
def __str__(self):
return self.category_name
这就是我尝试在视图中执行注释的方式:
def mezan(request):
all_daily = Daily.objects.values('da2en_from_cat__category_name', 'maden_from_cat__category_name').annotate(
all_maden=Sum('maden',distinct=True)).annotate(
all_da2en=Sum('da2en',distinct=True))
context = {
'all_daily': all_daily,
}
return render(request, 'mezan.html', context)
最后,当我尝试在我的 HTML 模板中查看该项目时,如果该项目在两个带注释的字段中都具有值,则该项目将重复。
{% for item in all_daily %}
<tr>
<td>{{item.da2en_from_cat__category_name}}</td>
<td>{{item.all_da2en}}</td>
<td">{{item.all_maden}}</td>
</tr>
{% endfor %}
我需要显示一次,显示2个值。但是它显示了两次,每个都有一个值