У меня есть прайс-лист:
product customer price
A admin 5
A user_a 4.9
A user_b 4.8
B admin 6
B user_b 5.9
C admin 10
, когда user_a входит в систему, отображает прайс-лист на него. Для каждого продукта, если есть цена для пользователя, показать эту цену, в противном случае показать цену для администратора.
например: только для user_a показать:
product customer price
A user_a 4.9
B admin 6
C admin 10
только для user_b показать:
product customer price
A user_b 4.8
B user_b 5.9
C admin 10
для user_ c только показать:
product customer price
A admin 5
B admin 6
C admin 10
Я строю модель, но не смог отфильтровать данные.
class Price(models.Model):
product = models.ForeignKey(Product, on_delete=models.CASCADE)
price_owner = models.ForeignKey(User, on_delete=models.CASCADE)
price = models.FloatField(default=0.00)
class PriceListView(generic.ListView):
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
context['price_list'] = Price.objects.filter(
price_owner__in=[self.request.user, 'admin'])
return context
Есть ли способ для этого?