【问题标题】:See how many orders he has on his profile page. Django在他的个人资料页面上查看他有多少订单。姜戈
【发布时间】:2025-12-12 08:45:02
【问题描述】:

当我进入我的用户个人资料页面时,我希望它查看到今天为止的订单总数。我尝试了聚合和 annonate 但它不起作用。我希望所以我使用过滤器方法,但我不知道该怎么做。

订单数 = 模型中的 adet

我添加了 ""if siparis.bayi_id == user.id"" 以便输入的用户可以对其订单执行操作。
Temp Html

                                {% for siparis in siparis %}
                                    {% if siparis.bayi_id == user.id %}

                          
                                            <strong>{{ a }}</strong><br><small>Siparişler Toplamı</small>


                            {% endif %}
                            {% endfor %}
                            

模型 Siparis 意味着秩序

class Siparis(models.Model):
bayi = models.ForeignKey('auth.User', verbose_name='bayi', on_delete=models.CASCADE, related_name='bayi',limit_choices_to={'groups__name': "BayiGrubu"})
urun = models.ForeignKey(Urun, on_delete=models.CASCADE)
adet = models.IntegerField()
tarih = models.DateTimeField()
status = models.BooleanField()

@property
def miktar(self):
    return (self.adet * self.urun.fiyat)

@property
def fiyat(self):
    return self.urun.fiyat

class Meta:
    verbose_name = 'Bayi Sipariş'
    verbose_name_plural = 'Bayi Siparişleri'

观看次数

def bayi_bayidetay(request):

siparis = Siparis.objects.all()
urunler = Urun.objects.all()
bayiler = bayi_bilgi.objects.all()

a = Siparis.objects.aggregate(Sum("adet"))
return render(request,'bayi/bayi_detay.html',{'bayiler':bayiler,'siparis':siparis,'urunler':urunler, 'a': a})

谢谢

【问题讨论】:

    标签: python django django-models django-templates python-3.9


    【解决方案1】:

    您可以尝试在a之后添加过滤器,如下所示:

    a = Siparis.objects.filter(bayi=request.user).aggregate(Sum("adet"))
    

    【讨论】:

    • 不工作的 django 说 'dict' 对象没有属性 'filter'
    • 对不起是我的错误,试试这个,它可以让你得到进入用户个人资料页面的顺序:a = Siparis.objects.filter(bayi=request.user).aggregate(Sum(" adet"))