Django 计算一个模型有多少个字段
我想知道是否有办法知道一个模型包含多少字段 例如:Django 计算一个模型有多少个字段,django,Django,我想知道是否有办法知道一个模型包含多少字段 例如: class Post(models.Model): title = models.TextField() body = models.TextField() sub_title = models.TextField() summary = models.TextField() 我可以数一数,但我想知道是否有一个内置的方法允许我这么做 理想情况下,任务/代码应为: Post.number\u fied-->输出-
class Post(models.Model):
title = models.TextField()
body = models.TextField()
sub_title = models.TextField()
summary = models.TextField()
我可以数一数,但我想知道是否有一个内置的方法允许我这么做
理想情况下,任务/代码应为:
Post.number\u fied
-->输出-->4
是否存在这样的情况?据我所知,没有内置项,您可以通过以下方式获得字段:
>>> len(Post._meta.fields)
5
我们可以在BaseModel
类和子类上定义该函数,以使该函数可用于所有子类:
class BaseModel(models.Model):
class Meta:
abstract = True
@classmethod
def number_of_fields(cls):
return len(cls._meta.fields)
class Post(BaseModel):
title = models.TextField()
body = models.TextField()
sub_title = models.TextField()
summary = models.TextField()
但是请注意,这将返回5
,因为模型在这里有一个(隐式)主键。您可以试试这个
>>> Post._meta.fields.__len__()
5
>>> Post._meta.fields.__len__()
5