CQL 过滤方法 - python
CQL filter method - python
我有以下 CQL table。
session = columns.Date(primary_key=True, partition_key=True, required=True)
entity = columns.Text(primary_key=True, partition_key=True, required=True)
broker = columns.Text(primary_key=True, required=True)
prof = columns.Text(primary_key=True, required=True)
prod = columns.Text(primary_key=True, required=True)
....
从 cql 引擎读取文档有一个 'filter' 方法,我可以使用它按 (session, entity) -> 分区键或任何我想要的进行过滤。
我的问题是以下问题,我想始终按 (session,entity) 以及可能的字段数量进行过滤,例如 'prof' 或 'prod' 或两者。
我执行此操作的功能如下。
def search_by(cls, entity, session, **kwargs): #entity, session, filter
activity_summary = ActivitySummary.objects \
.filter(entity=entity, session=session) \
.filter(kwargs) \
.allow_filtering()
return cls._to_dataframe(activity_summary)
其中 **kwargs 是我的变量过滤器,我想用我的主键来过滤它的字典(例如 {'prof':'MAXIMO'})。
但它不起作用,因为它没有将字典名称与列 cql table 名称正确匹配。
有什么想法吗?谢谢
您需要在传递 kwarg 时扩展它们。
def search_by(cls, entity, session, **kwargs): #entity, session, filter
activity_summary = ActivitySummary.objects \
.filter(entity=entity, session=session) \
.filter(**kwargs) \
.allow_filtering()
return cls._to_dataframe(activity_summary)
注意 .filter(**kwargs)
而不是 .filter(kwargs)
我有以下 CQL table。
session = columns.Date(primary_key=True, partition_key=True, required=True)
entity = columns.Text(primary_key=True, partition_key=True, required=True)
broker = columns.Text(primary_key=True, required=True)
prof = columns.Text(primary_key=True, required=True)
prod = columns.Text(primary_key=True, required=True)
....
从 cql 引擎读取文档有一个 'filter' 方法,我可以使用它按 (session, entity) -> 分区键或任何我想要的进行过滤。
我的问题是以下问题,我想始终按 (session,entity) 以及可能的字段数量进行过滤,例如 'prof' 或 'prod' 或两者。
我执行此操作的功能如下。
def search_by(cls, entity, session, **kwargs): #entity, session, filter
activity_summary = ActivitySummary.objects \
.filter(entity=entity, session=session) \
.filter(kwargs) \
.allow_filtering()
return cls._to_dataframe(activity_summary)
其中 **kwargs 是我的变量过滤器,我想用我的主键来过滤它的字典(例如 {'prof':'MAXIMO'})。
但它不起作用,因为它没有将字典名称与列 cql table 名称正确匹配。
有什么想法吗?谢谢
您需要在传递 kwarg 时扩展它们。
def search_by(cls, entity, session, **kwargs): #entity, session, filter
activity_summary = ActivitySummary.objects \
.filter(entity=entity, session=session) \
.filter(**kwargs) \
.allow_filtering()
return cls._to_dataframe(activity_summary)
注意 .filter(**kwargs)
而不是 .filter(kwargs)