जवाबों:
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