- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有 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)
我有一个 View 接收 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})
渲染时我收到一个过滤到 Category
的 QuerySet
我想将 category.id
发送到 ProductsFilter
并从数据库中接收动态 Choices
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)
这可能吗?
最佳答案
@Sherpa 的回答只有两个小问题。首先,您应该将 fields
替换为 filters
。其次,你不能使用+=
操作符,你必须直接赋值给过滤器的extra
。这是我的两种不同方式的工作代码
class LayoutFilterView(filters.FilterSet):
supplier = filters.ChoiceFilter(
label=_('Supplier'), empty_label=_("All Suppliers"),)
def __init__(self, *args, **kwargs):
super(LayoutFilterView, self).__init__(*args, **kwargs)
# First Method
self.filters['supplier'].extra['choices'] = [
(supplier.id, supplier.name) for supplier in ourSuppliers(request=self.request)
]
# Second Method
self.filters['supplier'].extra.update({
'choices': [(supplier.id, supplier.name) for supplier in ourSuppliers(request=self.request)]
})
最初发布 here
关于django - FilterSet(django-filter)添加一些参数+一些参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42100560/
我正在创建一个应用程序,其中食物有多个成分,每个成分都有特定的值。我希望能够根据特定成分的值(value)过滤食物。 这是我的模型: class Food(models.Model): id
在我的网站上,我有一个页面显示了所有产品的列表,以及使用 FilterSet 构建的搜索引擎。一切正常,但我想再添加一个搜索选项。我希望能够过滤所有属性设置为 True 的产品,但是当未标记复选框时我
我有 3 个模型: class Category(models.Model): name = models.CharField(max_length=200) slug = model
我正在使用 Django 过滤器包。 我在 View 中以下列方式定义我的过滤器 class UnitFilter(django_filters.FilterSet): class Meta:
我有一个模型可以说 ObservedMoves .在我的 View 中的许多查询中都引用了此模型。因此,不是直接在每个 View 中应用我想要的过滤器,而是将它们抽象到过滤器类中,让我们说 Obser
文档显示 我们有很多字段,我们想让我们的用户根据价格或发布日期进行过滤。我们为此创建了一个 FilterSet: import django_filters class ProductFilter(d
我的应用程序使用 rest-framework 和 django-filter。我使用此 FilterSet 提供按 date 过滤的文章列表 (ModelViewSet): from django_
要求: 我们有一个用于 DEV 和 RELEASE 模式的 ANT 构建文件。我们希望在 DEV 模式下启用过滤并在 RELEASE 模式下禁用它。由于我们对两种模式(DEV 和 RELEASE)使用
我是一名优秀的程序员,十分优秀!