gpt4 book ai didi

python - Django过滤字段列表以仅获取某种类型的字段

转载 作者:行者123 更新时间:2023-12-01 04:10:06 25 4
gpt4 key购买 nike

这是在拦截的表单实例的上下文中。我需要获取我能够获得的字段列表。但我无法仅获取图像字段。这是我使用的代码:

list_of_image_fields = [x.name for x in instance._meta.fields if type(x) == 'django.db.models.fields.files.ImageFieldFile']

x.name 正确体现了 meta.fields 中实例中所有字段的每个名称。通过 if 语句,我希望仅获得 ImageField 类型。'type(x)' 当我用它代替 x.name 时返回:

<class 'django.db.models.fields.files.ImageFieldFile'> #for each field

但它不像我将其放入 if 语句中那样工作,最终得到一个空列表。您可以在附图中看到我在调试器中得到的内容,例如._meta.fields.03(字段号03)enter image description here

最佳答案

该类型不是字符串,而是实际类型。因此,将其与此进行比较!

from django.db.models.fields.files import ImageFieldFile

list_of_image_fields = [x.name for x in instance._meta.fields if type(x) == ImageFieldFile]

您在调试器中看到的实际上是 str(type(ImageFieldFile)) 的结果,这是将类型转换为字符串时得到的结果,以便人们可以读取它。

关于python - Django过滤字段列表以仅获取某种类型的字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35066145/

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