gpt4 book ai didi

python - Django ORM获取各自的选择值而不是字段值

转载 作者:太空宇宙 更新时间:2023-11-03 14:09:40 24 4
gpt4 key购买 nike

在 Django ORM 中,有没有什么方法可以直接获取相应的选项值,而不是结果查询集中的字段值。
示例:

port = models.CharField(
max_length=5,
choices=( ('21', 'FTP'), ('22', 'SSH'), (...), .. )
)

在 ORM 查询之后,我需要查询集中的端口名称(而不是数字)。

查询:

> myModel.objects.filter(...).values()

输出:

> [{"id": 1, "port": "21"}, {"id": 2, "port": "22"}, {...}, ...]

我想要什么:

> [{"id": 1, "port": "FTP"}, {"id": 2, "port": "SSH"}, {...}, ...]

最佳答案

正如 @neverwalkaloner 指出的那样,您不会将“FTP”等保存在数据库中,因此无法使用查询集检索它们。你可以做的是这样的:

[{'id': obj.pk, 'port': obj.get_port_display()} for obj in myModel.objects.filter(...)]

这会给你:

[{"id": 1, "port": "FTP"}, {"id": 2, "port": "SSH"}, {...}, ...]

希望有帮助。

关于python - Django ORM获取各自的选择值而不是字段值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48596370/

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