Django Choice Filter:如何阻止空选择标签在request.GET中提交

问题描述

如果将订购下拉菜单设置为“无”或“ ----”(认设置),如何从URL中删除“ ordering =”。

'&ordering=' showing up in url

Demo Link

filters.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',Old to New' ),),fields = (
            ('is_featured','featured'),#{model field name,parameter in the URL}
            ('created_at','created'),('price','price'),field_labels = {
            'is_featured': 'Featured',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

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)