91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么用django filters實現數據過濾

發布時間:2022-02-28 15:41:38 來源:億速云 閱讀:152 作者:iii 欄目:開發技術

這篇“怎么用django filters實現數據過濾”文章的知識點大部分人都不太理解,所以小編給大家總結了以下內容,內容詳細,步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“怎么用django filters實現數據過濾”文章吧。

常用

當前循環.作用
default數據為空時設置默認值
length取變量長度
filesizeformat文件大小轉成可讀
slice從指定位置到指定位切片
datedatetime取到的時間,轉成指定格式
safe防止XSS攻擊、加上safe才能傳標簽
truncatechars取摘顯示一段剩下的…

例子

{#格式   值|函數#}
{#    如果沒有值,那么使用默認值#}
    <p>{{ bucunzai|default:'空的哦' }}</p>

{#    取出變量長度#}
    <q>{{ name }}--{{ name|length }}</q>

{#      文件大小轉換成可讀型  kb 自動轉成bm、g、tb#}
    <p>文件大小{{ file_size|filesizeformat }}</p>

{#    切片 從指定位置到指定位 ,例:第3位到-2位#}
    <p>切片:{{ slice_str|slice:'3:-2' }}</p>

{#    把datetime取到的時間,轉成指定格式#}
    <p>格式化:{{ now|date:'Y-m-d H:i:s' }}</p>

{#    如果后端內容包含標簽,那么加上safe 才能轉義(防止用戶直接加script標簽作弊)防XSS攻擊#}
    <p>{{ h_html|safe }}</p>

{#    取摘要只顯示一段,指定取長度后面...例:120個字符 #}
    <p>長文本:{{ p_str|truncatechars:12 }}</p>

1、視圖

class UserView(ListAPIView):
    """用戶列表"""
    queryset = User.objects.all()
    serializer_class = UserSerializer
    filter_backends = (DjangoFilterBackend,)
    filter_class = UserMonthFilter  # 指定過濾類

2、過濾類

class RobotFilter(django_filters.FilterSet):
    # 使用過濾:URL?created_start_time=2020_01-20&created_end_time=2020_01-21
    robot_id = django_filters.CharFilter(field_name='id')
    machine_id = django_filters.CharFilter(field_name='machine_id')
    city = django_filters.CharFilter(field_name='city')
    # lookup_expr(可選)為判斷條件,field_name(必選)為模型類屬性,created_time查詢字符串
    created_time= django_filters.CharFilter(field_name='created_at', lookup_expr='startswith')
    created_start_time = django_filters.DateTimeFilter(field_name='created_at', lookup_expr='gt')
    created_end_time = django_filters.DateTimeFilter(field_name='created_at', lookup_expr='lt')
    problem_isnull = django_filters.BooleanFilter(field_name='problem', lookup_expr='isnull')
    name = django_filters.CharFilter(lookup_expr='iexact')  # iexact表示精確匹配, 并且忽略大小寫
    author = django_filters.CharFilter(lookup_expr='icontains') #icontains表示模糊查詢(包含),并且忽略大小寫
    price = django_filters.NumberFilter(look_expr='exact')  #exact表示精確匹配
    task_res_state = django_filters.CharFilter(method="get_task_res_state")
    
    def get_task_res_state(self, queryset, *arg):
        if str(arg[1]) == "0":  # arg[1]=('task_res_state', '0')
            task_res = (1, 2, 3)
        else:
            task_res = (0, 4, 5, 6)
        print(task_res)
        queryset = queryset.filter(task_res__in=task_res)
        return queryset
    class Meta:
        model = Robot
        fields = ['robot_id', 'machine_id', "city", "created_start_time", "created_end_time", 'created_time',
                  'firmware_version', 'state', "robot_type", "hardware_version", "exist_map", 'task_res_state']

以上就是關于“怎么用django filters實現數據過濾”這篇文章的內容,相信大家都有了一定的了解,希望小編分享的內容對大家有幫助,若想了解更多相關的知識內容,請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

登封市| 安平县| 南漳县| 高陵县| 古交市| 滦南县| 镇安县| 翁源县| 大庆市| 乡城县| 阿荣旗| 恩平市| 游戏| 缙云县| 武山县| 武定县| 方正县| 永平县| 丰宁| 公安县| 安顺市| 博野县| 二连浩特市| 黄石市| 碌曲县| 康定县| 万州区| 阿坝县| 涟源市| 社旗县| 将乐县| 玉田县| 玉溪市| 昌邑市| 东丰县| 青河县| 隆子县| 德清县| 白朗县| 贵溪市| 得荣县|