[Fixed]-How to get a model name from the instance as a string in Django?

27👍

from user.models import User
user = User.objects.create_user(tel='1234567890', password='YKH0000000')
print(user._meta.model)
<class 'user.models.User'>
print(user._meta.model.__name__)
User
print(user.__class__.__name__)
User
👤Ykh

1👍

To stay close to the question, type(instance).__name__ is a valide answer (which is the one given in this older question)

So using @Ykh example:

from user.models import User
user = User.objects.create_user(tel='1234567890', password='YKH0000000')
print(type(user).__name__)
User

0👍

With __name__, you can get a model name in str type as shown below:

from .models import MyModel
              
print(MyModel.__name__) # MyModel

-3👍

By defining the str or unicode method ?

Leave a comment