I need to display several models name & objects in a template
Here is my view
def contents(request):
\"\"\"Lists contents\"\"\
An alternative solution is to subclass your model's QuerySet:
class SomeQuerySet(models.QuerySet):
@property
def verbose_name(self):
return self.model._meta.verbose_name
class SomeModel(models.Model):
...
objects = SomeQuerySet.as_manager()
class Meta:
verbose_name = 'Some Model'
Now you can get the verbose_name
from the queryset directly, without the need to iterate over it:
{{ objects.verbose_name }}
{% for objs in objects %}
...
If you want to access the verbose_name
from a model instance directly, and not from a QuerySet
, you'll need to define a property in your model as well:
class SomeModel(models.Model):
...
objects = SomeQuerySet.as_manager()
class Meta:
verbose_name = 'Some Model'
@property
def verbose_name(self):
return self._meta.verbose_name