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