python - Django 选择过滤器:如何阻止在 request.GET 中提交空选择标签
问题描述
当订购下拉菜单设置为“无”或“----”时,如何从 URL 中删除“订购=”,这是默认选项。
过滤器.py
class BrandFilter(django_filters.FilterSet):
brand = django_filters.ModelMultipleChoiceFilter(widget=forms.CheckboxSelectMultiple)
category = django_filters.ModelMultipleChoiceFilter(widget=forms.CheckboxSelectMultiple)
ordering = django_filters.OrderingFilter(
choices = (
('-is_featured', 'Featured'),
('-created_at', 'Date, New to Old'),
('created_at', 'Date, Old to New' ),
),
fields = (
('is_featured', 'featured'), #{model field name, parameter in the URL}
('created_at', 'created'),
('price', 'price'),
),
field_labels = {
'is_featured': 'Featured', #{model field name, human readable label}
'created_at': 'Date',
'price': 'Price',
}
)
class Meta:
model = Product
fields = ('brand','category')
def __init__(self, products= "", category=Category.objects.none(),*args, **kwargs):
super(BrandFilter, self).__init__(*args, **kwargs)
self.filters['brand'].queryset = Brand.objects.filter(product__in=products).distinct()
self.filters['category'].queryset = category
解决方案
推荐阅读
- angular - Team City 中的 Angular 生产构建错误:
- django - django在尝试使用表单时找不到模板
- react-native - 推荐用于 react native 的稳定文本编辑器
- vaadin7 - 从 Vaadin 7 迁移到 Vaadin 8 后不编译项目
- react-native - 如何在本机反应中使用状态?
- php - 在 2 结帐中同时启用 IPN 和 INS 响应
- android - Ionic5、Capacitor、Android 上的无眠进程
- javascript - 反应、可视化和编辑 JSON 对象。填充输入数据
- javascript - 如何在遍历一系列目录的循环中使用异步 readdir 函数?
- java - 通过 try/catch 退出 for 循环