CQL过滤方法-python

CQL过滤方法-python,python,filter,cassandra,cql,Python,Filter,Cassandra,Cql,我有下面的CQL表 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=Tr

我有下面的CQL表

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”方法,我可以使用它通过(会话、实体)->分区键或任何我想要的方式进行过滤

我的问题是,我希望总是按(会话、实体)过滤,但也要按可能的字段数过滤,如“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表名


有什么想法吗?谢谢。

您需要在传递kwargs时将其展开

def search_by(cls、实体、会话、**kwargs):#实体、会话、过滤器
activity\u summary=ActivitySummary.objects\
.filter(实体=实体,会话=会话)\
.过滤器(**kwargs)\
.allow_filtering()
将cls.\u返回到\u数据帧(活动\u摘要)
注意
.filter(**kwargs)
而不是
.filter(kwargs)