How can I get a model name as a "string" from a model instance.
I know you can do something like type(model_instance)
but this is returning the class itself as an object <Model_Name: >
not as a string.
How to get a model name from the instance as a string in Django?
Possible duplicate of Getting the class name of an instance in Python –
Noguchi
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
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
With __name__
, you can get a model name in str
type as shown below:
from .models import MyModel
print(MyModel.__name__) # MyModel
By defining the str or unicode method ?
defining str gives a string name for the "model_instance" not the model –
Burning
© 2022 - 2024 — McMap. All rights reserved.