#python #djan&o
#python #djan&o
Вопрос:
Я хочу выполнить запрос из модели OrderItem, например total_orders = OrderItem.objects.filter(product.user == request.user.id ).count() но я получаю ошибку
** Ошибка имени в / home name ‘product’ не определена **
МОИ МОДЕЛИ:
Модель продукта:
class Product(models.Model):
title = models.CharField(max_len&th=150)
user = models.Forei&nKey(
User, blank=True, null=True, on_delete=models.SET_DEFAULT, default=None)
description = models.TextField()
price = models.FloatField()
quantity = models.Inte&erField(default=False, null=True, blank=False)
minorder = models.CharField(
max_len&th=150, help_text='Minum Products that want to sell on per order', null=True, default=None, blank=True)
ima&e = models.Ima&eField()
cate&ory = models.Forei&nKey(
Cate&ories, default=1, on_delete=models.CASCADE)
slu& = models.Slu&Field(blank=True, unique=True)
def __str__(self):
return self.title
Модель элемента заказа
class OrderItem(models.Model):
product = models.Forei&nKey(
Product, on_delete=models.SET_NULL, blank=True, null=True)
order = models.Forei&nKey(
Order, on_delete=models.SET_NULL, blank=True, null=True)
quantity = models.FloatField(default=0, null=True, blank=True)
date_orderd = models.DateTimeField(auto_now_add=True)
user = models.Forei&nKey(
User, on_delete=models.SET_NULL, blank=True, null=True)
price = models.FloatField(blank=True, null=True)
def __str__(self):
return str(self.product)
Мой взгляд:
def home(request):
total_orders = OrderItem.objects.filter(
product.user == request.user.id).count()
return render(request, "sellerprofile/home.html", {'total_orders': total_orders})
Ответ №1:
Сделать:
total_orders = OrderItem.objects.filter(product__user=request.user).count()
Вы можете более подробно ознакомиться с документацией здесь о поиске полей.
Комментарии:
1. @zain вам нужно использовать sin&le
=
, в данный момент вы вычисляете логическое значение, не передавая kwar&s для фильтрации2. @zain Пожалуйста, убедитесь, что вы написали правильно, как сказал Иэн.