【发布时间】:2019-10-28 10:49:53
【问题描述】:
我有 3 个模型:
class Category(models.Model):
name = models.CharField(max_length=200)
slug = models.SlugField(max_length=70, null=True, blank=True)
class SubCategory(models.Model):
category= models.ForeignKey(Category, on_delete=models.CASCADE)
name = models.CharField(max_length=200, )
class Products(models.Model):
user= models.ForeignKey(User, on_delete=models.CASCADE)
category= models.ForeignKey(Category, on_delete=models.CASCADE)
subcategory = models.CharField(max_length=200, null=True, blank=True)
我有一个接收request 和category.slug 的视图
def category_list(request, slug):
category = Category.objects.get(slug=slug)
products = ProductFilter(request.GET, queryset=Products.objects.filter(category=category)
return render(request, 'products/category_list.html', {"products":products, 'category': category})
渲染时我收到一个QuerySet 过滤到Category
我想将category.id 发送到ProductsFilter 并从数据库中接收动态选择
class ProductsFilter(django_filters.FilterSet):
subcategory= django_filters.ChoiceFilter(lookup_expr='iexact', choices=TEST, required=False)
class Meta:
model = Products
fields = {
"subcategory",
}
想把choices=TEST改成choices=list(SubCategory.objects.filter(category_id=category.id)
这可能吗?
【问题讨论】:
标签: django django-forms django-filter django-filters