get class name for empty queryset in django
Question:
I have empty queryset of model Student
students = Students.objects.all()
If the above queryset is empty, then how can i get the model(class name)?
How can i get the model name for empty queryset?
EDIT:
How can i get the app name from the queryset?
Answers:
students.model
Querysets have a model
attribute that can be used to retrieve the model they are associated with.
>>> students = Students.objects.all()
# The queryset's model class:
>>> students.model
project.app.models.Student
# Name of the model class:
>>> students.model.__name__
'Student'
# Import path of the models module:
>>> students.model.__module__
'project.app.models'
# Django app name:
>>> students.model._meta.app_label
'app'
You can do:
students.model.__name__
>>> `Students`
To get the model name from queryset
queryset.__dict__['model'].__name__
If you want a model type which is a string:
queryset.model.__name__
You can check the type:
type(queryset.model.__name__)
>>> str
And if you want models.base.ModelBase
type:
queryset.model._meta.model
You can check the type:
type(queryset.model._meta.model)
>>> django.db.models.base.ModelBase
I have empty queryset of model Student
students = Students.objects.all()
If the above queryset is empty, then how can i get the model(class name)?
How can i get the model name for empty queryset?
EDIT:
How can i get the app name from the queryset?
students.model
Querysets have a model
attribute that can be used to retrieve the model they are associated with.
>>> students = Students.objects.all()
# The queryset's model class:
>>> students.model
project.app.models.Student
# Name of the model class:
>>> students.model.__name__
'Student'
# Import path of the models module:
>>> students.model.__module__
'project.app.models'
# Django app name:
>>> students.model._meta.app_label
'app'
You can do:
students.model.__name__
>>> `Students`
To get the model name from queryset
queryset.__dict__['model'].__name__
If you want a model type which is a string:
queryset.model.__name__
You can check the type:
type(queryset.model.__name__)
>>> str
And if you want models.base.ModelBase
type:
queryset.model._meta.model
You can check the type:
type(queryset.model._meta.model)
>>> django.db.models.base.ModelBase