django - Django-filter 字段名称是一个 python 内置关键字
问题描述
我正在尝试使用 DRF 和django-filter重建旧版 API 。字段名称之一是from
, 但是
from = DateTimeFilter(field_name="created_dt", lookup_expr="gte")
不是有效的 Python。我可以命名变量吗
from_ = DateTimeFilter(...)
但仍然?from=
向用户公开 API 参数?
解决方案
覆盖类的__init__()
方法FilterSet
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')
推荐阅读
- python-3.x - 尝试执行`import tensorflow as tf`时出现ImportError
- laravel - 为什么 laravel 在升级过程中不自行更新文件?
- java - 使用 Kafka Connect 实时读取 CSV 文件
- javascript - 导入的函数在 React 中未定义
- android - Android NDK Cmake 链接器 *.so 没有这样的文件或目录
- google-apps-script - 谷歌表格公式 - 应用于每一行的数组公式
- azure-active-directory - 如何在 Azure AD 用户中重置密码?
- mysql - MySQL Join - 不是唯一的表/别名错误
- java - 为什么从类似 JSON 的数据转换为 POJO 时 Firestore 不使用 setter?
- node.js - Node.js 和 Travis CI:安装 node-lua 包时找不到 lua.h