Посмотрите, сколько заказов у него на странице профиля. Django

#python #django #django-models #django-templates #python-3.9

#python #django #django-модели #django-шаблоны #python-3.9

Вопрос:

Когда я захожу на страницу своего профиля пользователя, я хочу, чтобы на ней отображалось общее количество заказов до сегодняшнего дня. я пробовал агрегировать и аннотировать, но это не работает. Я надеюсь, что я использую метод filter, но я не знаю, как это сделать.

Количество заказов = adet в модели

Я добавил «», если 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})
 

Спасибо

Ответ №1:

Вы можете попробовать добавить фильтр после, например:

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

Комментарии:

1. не работает django сказал, что объект ‘dict’ не имеет атрибута ‘filter’

2. Извините, это моя ошибка, попробуйте это, это может помочь вам получить одера, который заходит на страницу профиля пользователя: a = Siparis.objects.filter(bayi=request.user).aggregate(сумма («adet»))