Django фильтрация записей - PullRequest
       5

Django фильтрация записей

0 голосов
/ 06 января 2020

У меня есть прайс-лист: 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

Есть ли способ для этого?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...