python3 walrus在ListField中添加值

以前使用walrus大部分情况用的都是TextField类型,今天使用ListField时遇到一些坎坷,所以把今天的问题在这里记录一下。

使用TextField时直接可以用 cls.create()  给redis设置值,但是ListField时会报错:

ValueError: Cannot set the value of a container field.

ValueError: Cannot set the value of a container field.

意思是不可以插入值在容器类里边(ListField是一个container field)

在网上搜了好久也没找到答案,然后就在官方文档里边找到这样一句话:

就是说在ListField中插入值必须先实例化一个对象,利用对象的方法进行插值,文档中也给出了这样一个案例:

class Note(Model):

    __database__ = db

    text = TextField()

    timestamp = DateTimeField(

        default=datetime.datetime.now,

        index=True)

    tags = SetField()

>>> note = Note.create(content='my first note')

>>> note.tags

>>> note.tags.add('testing', 'walrus')

>>> Note.load(note._id).tags

ok!问题解决!

你可能感兴趣的:(python3 walrus在ListField中添加值)