Python 3.x 对peewee字段类型进行子分类以添加行为

Python 3.x 对peewee字段类型进行子分类以添加行为,python-3.x,peewee,Python 3.x,Peewee,我正在尝试将所需的行为添加到charfield或TextField中,以便可以存储列表列表并再次将其作为列表列表检索。我不是在寻求解决方案,而是希望看到一个示例,其中已经支持的字段类型的子类已经完成,因为我在文档或Internet中没有找到任何子类 我是否必须按照文档中的说明创建自定义类型 例如: class mylistoflists(TextField): 如果是,那么我必须为field\u type分配什么?示例代码(有关完整示例,请参阅tests/fields.py): class Li

我正在尝试将所需的行为添加到
charfield
TextField
中,以便可以存储列表列表并再次将其作为列表列表检索。我不是在寻求解决方案,而是希望看到一个示例,其中已经支持的字段类型的子类已经完成,因为我在文档或Internet中没有找到任何子类

我是否必须按照文档中的说明创建自定义类型

例如:

class mylistoflists(TextField):

如果是,那么我必须为
field\u type
分配什么?

示例代码(有关完整示例,请参阅tests/fields.py):

class ListField(TextField):
    def db_value(self, value):
        return ','.join(value) if value else ''

    def python_value(self, value):
        return value.split(',') if value else []


class Todo(TestModel):
    content = TextField()
    tags = ListField()


class TestCustomField(ModelTestCase):
    requires = [Todo]

    def test_custom_field(self):
        t1 = Todo.create(content='t1', tags=['t1-a', 't1-b'])
        t2 = Todo.create(content='t2', tags=[])

        t1_db = Todo.get(Todo.id == t1.id)
        self.assertEqual(t1_db.tags, ['t1-a', 't1-b'])

        t2_db = Todo.get(Todo.id == t2.id)
        self.assertEqual(t2_db.tags, [])

        t1_db = Todo.get(Todo.tags == Value(['t1-a', 't1-b'], unpack=False))
        self.assertEqual(t1_db.id, t1.id)