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?

Asked By: Asif

||

Answers:

students.model

Querysets have a model attribute that can be used to retrieve the model they are associated with.

Answered By: mipadi
>>> 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'
Answered By: Jakub Roztocil

You can do:

students.model.__name__
>>> `Students`
Answered By: Aamir Rind

To get the model name from queryset

queryset.__dict__['model'].__name__
Answered By: Naman Agarwal

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
Answered By: Keval