【发布时间】:2021-05-29 03:38:33
【问题描述】:
如何在不调用构造函数的情况下将类变量动态添加到 Python 类中?在自定义 Django 石墨烯中继节点过滤器中添加自定义查询字段时,这是必需的。
在下面的示例代码中,is_controller 类变量是静态定义的。不使用类外的构造函数或代码,如何动态生成 BooleanFilter 的变量名和参数?
这是运行 GraphQL 查询所必需的,例如 allSiteEntities(is_controller: true) { ... }
class SiteEntityFilter(FilterSet):
"""Filter for SiteEntityNode that includes component filters"""
is_controller = BooleanFilter(
field_name=controller_component, lookup_expr="isnull", exclude=True
)
class Meta:
model = SiteEntity
fields = {
"site": ["exact"],
"name": ["exact", "icontains", "istartswith"],
"modified_at": ["exact", "gt", "lt"],
}
class SiteEntityNode(DjangoObjectType):
class Meta:
model = SiteEntity
filterset_class = SiteEntityFilter
fields = [
"id",
"site",
"name",
"controller_component",
"created_at",
"modified_at",
]
interfaces = (relay.Node,)
【问题讨论】:
标签: python django graphene-django