जवाबों:
Book.__class__.__name__कक्षा में स्वयं करने के बजाय , यदि आप इसे किसी पुस्तक ऑब्जेक्ट पर करते हैं, तो book_object.__class__.__name__आपको 'बुक' (यानी मॉडल का नाम) देगा
जैसा कि ऊपर दिए गए उत्तर से पता चलता है , आप उपयोग कर सकते हैं str(Book._meta)।
यह प्रश्न काफी पुराना है, लेकिन मुझे निम्न सहायक (Django 1.11 पर परीक्षण किया गया, लेकिन पुराने पर काम कर सकता है ...) मिला, क्योंकि आपके पास एक ही मॉडल का नाम कई ऐप्स से हो सकता है।
मान लें कि पुस्तक में है my_app :
print(Book._meta.object_name)
# Book
print(Book._meta.model_name)
# book
print(Book._meta.app_label)
# my_app
2.2.3भी काम कर रहा है।
मुझे वर्ग नाम का उपयोग करके मिला,
str(Book._meta)
Book.__class__.__name__ -> this will give you the ModelBase
str(self.model._meta)जिसकी मुझे तलाश थी वह है; जैसा कि दूसरे ने मुझे मूल वर्ग दिया है।
Book._meta.object_nameया Book._meta.model_name। फिर यदि आप ऐप का नाम भी चाहते हैं, तो इसके माध्यम से सुलभ हैBook._meta.app_label
आप मॉडल के मेटा क्लास से मॉडल का नाम भी प्राप्त कर सकते हैं। यह मॉडल वर्ग के साथ-साथ इसके किसी भी उदाहरण पर काम करता है:
# Model definition
class Book(models.Model):
# fields...
class Meta:
verbose_name = 'book'
verbose_name_plural = 'books'
# Get some model
book = Book.objects.first()
# Get the model name
book._meta.verbose_name
सेटिंग verbose_nameऔरverbose_name_plural वैकल्पिक है। Django इन मूल्यों को मॉडल वर्ग के नाम से हटाएगा (आपने उन मानों का उपयोग व्यवस्थापक साइट में देखा होगा)।
https://docs.djangoproject.com/en/3.0/ref/models/options/#verbose-name