gpt4 book ai didi

python - 对集合中的模型字段进行排序

转载 作者:行者123 更新时间:2023-12-01 06:03:41 24 4
gpt4 key购买 nike

我正在使用this django snippet ,它将数据从管理员导出到 csv 文件。它有这两行从模型中获取字段名称。

    opts = modeladmin.model._meta
field_names = set([field.name for field in opts.fields])

但是,这些字段名称不按顺序排列。有没有办法按模型中的声明顺序进行排序?如果没有,请按字母顺序订购一套?

最佳答案

简短回答:不会。集合将删除任何顺序。

如果您想按字母顺序排序,请将其转换为列表并对其调用 sort() 。

field_names = list(field_names)
field_names.sort()
<小时/>

您可以查看其他一些堆栈答案来实现有序集,该集将与代码的其余部分(set & set)一起使用:

Does Python have an ordered set?

<小时/>

或者将使用集合的代码替换为使用列表的代码:

field_names = [field.name for field in opts.fields]
if fields:
field_names = filter(lambda field: field in fields, field_names)
elif exclude:
field_names = filter(lambda field: field not in exclude, field_names)

我不明白为什么一个模型会有多个同名字段,并且我没有看到使用一个包含 10 个项目的集合进行定期管理操作有任何值得的性能增益,因此您可能会这样做我们将删除它们。

关于python - 对集合中的模型字段进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9073161/

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