簡體   English   中英

"Django 過濾器 OrderingFilter 默認選擇"

[英]Django filter OrderingFilter default choice

我用 django 過濾器創建了一個排序過濾器,我一直想知道如何設置默認選項並刪除空選項。

class MyFilter(django_filters.FilterSet):
    name = django_filters.CharFilter(lookup_expr='icontains')

    o = django_filters.OrderingFilter(
        choices=(
            ("created", _("Created, old to new")),
            ("-created", _("Created, new to old"))
        ),
        fields = (
            "created", "created"
        )
    )

您可以通過指定該字段是必需的來省略空標簽,因此:

class MyFilter(django_filters.FilterSet):
    name = django_filters.CharFilter(lookup_expr='icontains')

    o = django_filters.OrderingFilter(
        choices=(
            ('created', _('Created, old to new')),
            ('-created', _('Created, new to old'))
        ),
        fields = (
            'created', 'created'
        ),
        required=True
    )

修復方法是通過將 empty_label 和 null_label 設置為 None 來禁用空選項。 這是第一個選項是默認選項。 請注意,第一個選項應該與查詢集的默認順序一致,以便在加載頁面而不使用過濾器時匹配。

class MyFilter(django_filters.FilterSet):
    name = django_filters.CharFilter(lookup_expr='icontains')

    o = django_filters.OrderingFilter(
        choices=(
            ('created', _('Created, old to new')),
            ('-created', _('Created, new to old'))
        ),
        fields = (
            'created', 'created'
        ),
        empty_label = None,
        null_label = None
    )
    

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM