获取django模型的类名
我有一个Django模型:
class Book(models.Model): [..]
我想要将模型名称作为string:“Book”。 当我试图这样做:
Book.__class__.__name__
它返回“ModelBase”。
任何想法?
试试Book.__name__
。
Django模型是从ModelBase
派生的,它是所有模型的Metaclass。
而不是在类本身上做Book.__class__.__name__
,如果你通过book对象book_object.__class__.__name__
,那么book_object.__class__.__name__
会给你'Book'(即模型的名字)
我通过使用了类名,
str(Book._meta) Book.__class__.__name__ -> this will give you the ModelBase
class Book(models.Model): [..] def class_name(self): return self.__class__.__name__
通过这种方式,无论何时调用book.class_name(也在模板{{book.class_name}}
),都将返回类名“Book”。