Python 如何为cassandra创建只读模型

Python 如何为cassandra创建只读模型,python,model,cassandra,readonly,Python,Model,Cassandra,Readonly,我有卡桑德拉模型 from cassandra.cqlengine import columns from cassandra.cqlengine.models import Model class StudentModules(Model): """Model for Student get.""" __table_name__ = 'students' student_id = columns.UUID(primary_key=True, default=uuid

我有卡桑德拉模型

from cassandra.cqlengine import columns
from cassandra.cqlengine.models import Model

class StudentModules(Model):
    """Model for Student get."""

    __table_name__ = 'students'
    student_id = columns.UUID(primary_key=True, default=uuid4)
    student_name = columns.Text(index=True)
在我的例子中,表
students
已经存在,我总是想使用这个模块进行
select
查询


我尝试了
\uuuu abstract\uuuuu
属性,但在这种情况下,我无法调用
过滤器
获取
模型调用。

没有内置的方法来执行此操作。通过定义一个中间类并重写变异方法*,可以获得类似的行为:

class ROModel(Model):
    __abstract__=True

    @classmethod
    def create(cls, **_):
        raise NotImplementedError()

    def save(self):
        raise NotImplementedError()

    def update(self, **_):
        raise NotImplementedError()

    def delete(self):
        raise NotImplementedError()

class Test(ROModel):
    __keyspace__='test'
    k = columns.Integer(primary_key=True)
    a = columns.Integer()
    b = columns.Integer()

print Test.objects.first()
Test(k=1, b=4).update()  # NotImplementedError
Test.create(k=1, a=2, b=3)  # NotImplementedError
Test(k=1).delete()  # NotImplementedError
Test(k=1, a=3).save()  # NotImplementedError
*请注意,这只是部分解决方案——您还需要使用类似专用的
query.ModelQuerySet
更新
ROModel.\uuuuuuqueryset\uuuuuuuuuu

然而,我很难理解这给你带来了什么。如果您调用一个变异方法,任何使其只读的解决方案都会导致运行时错误

在任何情况下,您最好使用auth和仅具有选择权限的用户/角色。

你知道怎么做了吗?@RohanMonga还没有:(@RohanMonga)你有什么办法吗?