Передача параметра внешнего ключа при фильтрации объектов в django

#django

#django

Вопрос:

У меня есть веб-сайт django. У меня есть следующие модели:

 class Category(models.Model):
    type=models.CharField(max_length=30)
    
class Product(models.Model):
    category = models.ForeignKey(Category, on_delete = models.CASCADE)
  

Это мой URL для страницы продуктов:

 path("products/<str:type>/",views.category,name="category"),
  

Что я хочу сделать, так это то, что я хочу отобразить продукты типа, переданного в URL.Это мой views.py:

 def category(request,type):
    prods=Product.objects.filter(category.type=type)
    context = {
        'categories':Category.objects.all(),
        'prods' : prods,
    }    
    return render(request,"category.html",context)
  

но это выдает ошибку, которую мне нужно использовать == в filter. и если я просто использую prods=Product.objects.filter(category=type) , то он запрашивает идентификатор категории из модели категории, а не тип категории. Что может быть исправлено таким образом, чтобы, если я передам leather в filter (в URL как type), в моем шаблоне отображались только товары с category.type= leather.

Ответ №1:

Попробуйте это с нижеприведенным.

 prods=Product.objects.filter(category__type=type)