উত্তর:
Book.__class__.__name__
ক্লাস নিজেই করার পরিবর্তে , আপনি যদি এটি কোনও বইয়ের বস্তুতে করেন তবে book_object.__class__.__name__
আপনাকে 'বুক' দেবে (অর্থাত্ মডেলের নাম)
উপরের উত্তর দ্বারা পরামর্শ হিসাবে , আপনি ব্যবহার করতে পারেন str(Book._meta)
।
এই প্রশ্নটি বেশ পুরানো, তবে আমি নিম্নলিখিত সহায়কটি পেয়েছি (জ্যাঙ্গো 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
এবং al verbose_name_plural
চ্ছিক। জ্যাঙ্গো মডেল শ্রেণীর নাম থেকে এই মানগুলি নির্ধারণ করবে (আপনি অ্যাডমিন সাইটে এই মানগুলির ব্যবহার লক্ষ্য করেছেন)।
https://docs.djangoproject.com/en/3.0/ref/models/options/#verbose-name