Как фильтровать товары из базы данных при переопределении queryset в django restframework
Я застрял, не зная, как поступить дальше. Я хочу фильтровать товары по определенному полю product_class. Приведенная ниже программа продолжает возвращать все продукты в базе данных вместо того, чтобы возвращать только те, которые имеют общий rpduct_class.
models.py
class Product(models.Model):
categories = models.ManyToManyField(Category)
created_by = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE, related_name="product_owner")
name = models.CharField(max_length=150)
image = models.ImageField(upload_to="images/products/")
slug = models.SlugField(max_length=255, blank=True, null=True)
brand = models.CharField(max_length=255, default="brand")
product_class = models.CharField(max_length=50)
createdAt = models.DateTimeField(auto_now_add=False)
class Meta:
ordering = ("-createdAt",)
def __str__(self):
return self.name
serializers.py
class product_serializer(serializers.ModelSerializer):
class Meta:
model = Product
fields = ('id', 'categories', 'created_by', 'name', 'image','slug',
'brand','product_class')
views.py
class product_class_view(generics.ListAPIView):
serializer_class = product_serializer
permission_classes = (permissions.AllowAny, )
def get_queryset(self, *args, **kwargs):
queryset = Product.objects.all()
product_class = self.request.query_params.get('product_class')
if product_class is not None:
queryset = queryset.filter(Product__product_class=product_class)
return queryset
urls.py
path('products/<product_class>', views.product_class_view.as_view(), name="product_class")
Пожалуйста, я хочу знать, как сделать так, чтобы код фильтровал товары на основе product_class. Класс_продукта - это поле в модели продукта.