gpt4 book ai didi

python - django 根据 max_length 进行过滤

转载 作者:太空宇宙 更新时间:2023-11-03 17:41:15 26 4
gpt4 key购买 nike

嗨,有没有一种方法可以在 Django 中过滤字段属性而不是字段值?

例如,对于我的 GUI 布局,我想知道按 max_length 排序的字段的顺序。我的模型:

class Person(models.Model):
name1 = models.CharField(max_length=220, default="")
name2 = models.CharField(max_length=90, default="")
name3 = models.CharField(max_length=30, default="")
name4 = models.CharField(max_length=130, default="")
name5 = models.CharField(max_length=10, default="")

我希望能够找到模型中最长 CharField 的长度,在本例中为 220。我该怎么做?

这只是一个简化的示例,但与我需要的功能类似。为了深入了解我面临的现实情况:我向模型“gui_serial_number”添加了一个自定义属性,我有部分静态模型,其字段如下:

a = CharField(gui_serial_number=10...)
b = CharField(gui_serial_number=20...)
....
n = CharField(gui_serial_number=50...)

我制作了一个动态界面,其中可以将字段动态添加到模型中(使用 type() 和 add_to_class() 等),并且用户可以在 GUI 中指定应放置字段的位置。当没有给出 gui_serial_number 时,我希望能够自动将 gui_serial_number 定义为“max+10”。

最佳答案

也许这并不美观,但是要找到 Person 的最长 CharField 的长度,您可以这样做:

from operator import attrgetter
sorted([field for field in Person._meta.fields if isinstance(field, models.CharField)],
key=attrgetter('max_length'))[-1].max_length

关于python - django 根据 max_length 进行过滤,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30524805/

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