gpt4 book ai didi

python - 更改子类模型表中的列顺序

转载 作者:太空宇宙 更新时间:2023-11-04 01:06:40 25 4
gpt4 key购买 nike

如果你在 peewee 中有一个子类模型,你如何告诉 peewee 以什么顺序在表中创建列?在下面的示例中,顺序是“b、c、a”,但我想要“a、b、c”。

class BaseModel(Model):
b = CharField()
c = CharField()

class Table(BaseModel):
a = CharField()

database.create_table(Table)

顺序很重要,因为这是我们测试新更改的产品沙盒区域。 UI 非常通用,但用户仍然需要能够使用该产品,因此有必要进行一些可用性增强,例如列顺序。

最佳答案

当 peewee 创建表时,它 calls get_fields ,它调用 get_sorted_fields ,它使用 _sort_key每个字段的顺序,这是基于字段定义的顺序。子类中的字段定义在父类中的字段之后,因此它的排序较低。

更改表中列创建顺序的唯一方法是子类化 FieldModelOptions(和 BaseModel 到使用子类 ModelOptions 等),覆盖相关代码以应用不同的排序顺序,并在所有地方使用您的新子类。

一个更实用和可维护的解决方案是只在侧面维护一个列表,按照您想要的顺序命名列,然后将其发送到前端以告诉它如何显示列。添加新列时,只需在该列表中以正确的顺序添加即可。

关于python - 更改子类模型表中的列顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30036817/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com