I'm trying to display a list of the models in my app on a web page, similar to the way the Django Admin does it. I'm not sure where the admin section is coded, which might be part of my problem.
I'm using Django 1.7, and have built a very simple view:
from django.db.models import get_app, get_models
def index(request):
app = get_app('sampledb')
modellist = get_models(app)
context = {'my_models': modellist}
return render(request, 'sampledb/index.html', context)
in my index.html page I created a table:
{% if my_models %}
<p>{{ my_models }}</p>
<table>
<thead>
<tr>
<th scope="col">Name</th>
<th scope="col">Verbose Plural</th>
</tr>
</thead>
<tbody>
{% for model in my_models %}
<tr>
<td>{{ model.meta.verbose_name_plural }}</td>
</tr>
{% endfor %}
</tbody>
</table>
{% endif %}
When I run this, my webpage first displays the <p>{{ my_models }}</p>, showing a list of model classes, such as
<class 'sampledb.models.Sites'>, <class 'sampledb.models.People'>, etc.
I guess that's my first hint that getting attributes from the 'model.name' isn't going to display anything, and it doesn't. But it doesn't give an error, either.
How do I dig into the class to retrieve the actual model so that I can display its attributes?