【问题标题】:Django-filter field name is a python builtin keywordDjango-filter 字段名称是一个 python 内置关键字
【发布时间】:2019-12-27 06:13:38
【问题描述】:

我正在尝试使用 DRF 和 django-filter 重建旧版 API。其中一个字段名称是from,但是

from = DateTimeFilter(field_name="created_dt", lookup_expr="gte")

不是有效的 Python。我可以命名变量吗

from_ = DateTimeFilter(...)

但仍将 API 参数作为?from= 公开给用户?

【问题讨论】:

    标签: django django-rest-framework django-filter


    【解决方案1】:

    重写 FilterSet 类的 __init__() 方法

    from django_filters import rest_framework as drf_filters
    
    
    class FooFilterSet(drf_filters.FilterSet):
        foo = drf_filters.CharFilter()  # some random field
    
        def __init__(self, *args, **kwargs):
            super().__init__(*args, **kwargs)
            self.filters["from"] = drf_filters.DateTimeFilter(field_name="created_dt", lookup_expr="gte")
    
        class Meta:
            model = Foo
            fields = ('foo', 'from')

    【讨论】:

      猜你喜欢
      • 2015-01-26
      • 2019-01-21
      • 2015-01-24
      • 2019-07-26
      • 1970-01-01
      • 2014-06-04
      • 2018-12-30
      • 2020-11-13
      • 1970-01-01
      相关资源
      最近更新 更多