#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»))