gpt4 book ai didi

python - 如何获取模型属性的属性?

转载 作者:太空宇宙 更新时间:2023-11-03 18:29:13 25 4
gpt4 key购买 nike

假设我有一个类,例如:

class MyClass(models.Model):
attributeA = models.CharField(max_length=100)
attributeB = models.IntegerField()
attributeC = models.CharField(max_length = 150, blank=True, nullable = True)
attributeD = models.ForeignKey('ModelB',related_name='FK_modelB')
attributeE = models.ManyToManyField('ModelC')

我想要做的是获取每个属性的属性,而不仅仅是我获得的名称:

my_instance._meta.get_all_field_name()

(这给了我一个属性名称列表)。不,我想要的是,对于每个属性,知道他的类型是什么(CharField,IntegerField,ForeignKey,ManyToManyField ...),如果它是ForeignKey/ManyToManyField以及所有元数据(例如max_length等),则与谁相关。

它的目的是将类序列化为 XML,如果它是 ManyToManyField、ForeignKey 或简单值,XML 中的表示形式将会有所不同。

顺便说一句,如果有人知道一个很棒的 XML 类序列化器,那会对我有很大帮助!

感谢您的回复!

最佳答案

Django 模型 _meta.fields 是您可以访问以获取字段属性的字段列表:

>>> from django.contrib.auth.models import User
>>> u = User.objects.all()[0]
>>> u._meta.fields[1].__class__.__name__
'CharField'
>>> u._meta.fields[1].name
'username'
>>> u._meta.fields[1].max_length
30
>>> u._meta.fields[1].blank
False
# ...

关于python - 如何获取模型属性的属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22656318/

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