在 peewee 中有一个子类化模型的情况下,如何告诉 peewee 在表中创建列的顺序?在下面的例子中,顺序是“b,c,a”,但我想要“a,b,c”。
class BaseModel(Model):
b = CharField()
c = CharField()
class Table(BaseModel):
a = CharField()
database.create_table(Table)
顺序很重要,因为这是我们产品的沙箱区域,我们在其中测试新的更改。用户界面非常通用,但用户仍然需要能够使用该产品,因此有必要增强一些可用性,例如列顺序。
当peewee创建一个表时,它calls get_fields,这称为get_sorted_fields,它使用_sort_key每个字段的名称,这基于字段的定义顺序。子类中的字段定义在父类中的字段之后,因此它的排序会靠后。
更改表中创建列的顺序的唯一方法是子类化Field
or ModelOptions
(and BaseModel
使用子类ModelOptions
等),覆盖相关代码以应用不同的排序顺序,并在任何地方使用新的子类。
一个更实用且可维护的解决方案是只在一侧维护一个列表,以您想要的顺序命名列,然后将其发送到前端以告诉它如何显示列。当您添加新列时,只需将其按照正确的顺序添加到该列表中即可。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)