假设我有这样的User
模型:
class User(models.Model):
first_name = models.CharField(max_length=30)
last_name = models.CharField(max_length=40, blank=True, null=True)
password = models.CharField(min_lengj)
connections = models.DecimalField(max_digits=3, default=0, blank=False)
... (other attributes)
对于一个特殊的使用情况下,我需要知道它的字段的确切定义,所以我可以作为一个连接的定义DecimalField
与max_digits
等于3default
等于0
也不可能是blank
。我怎样才能做到这一点?
您可以获取User._meta.get_fields()
用于返回为该模型定义的字段的元组的字段。您还可以使用User._meta.get_field('connections')
来获取特定字段。
这将是一个DecimalField
具有'connections'
其名称的对象。您可以检查属性,如.name
,和.max_digits
(即返回3
)。
您还可以使用.deconstruct()
[Django-doc]方法为该字段获取一个包含以下内容的4元组:(1)字段名称;(2)字段的类型为字符串;(3)将位置参数列为清单;(4)将命名参数作为字典。
因此,对于您的User
模型,我们可以看到:
>>> User._meta.get_field('connections').deconstruct()
('connections', 'django.db.models.DecimalField', [], {'default': 0, 'max_digits': 3})
>>> User._meta.get_field('connections').blank
False
>>> User._meta.get_field('connections').max_digits
3
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句