获取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”。