0

I am trying to display the count of objects of each model. For this i have edited env > lib > django > contrib > templates > admin > app_list.html, bellow is the code. I am having to doubts here.

  1. I know this is not optimal solution where editing directly in env django folder. So how i can edit the app_list.html so that i can display the count.
  2. I tried {{model}}, but was not able to display count, always come as blank as you can see in image.

Possible out i tried in template html-

{{model}}

Object - {'name': 'Exam categorys', 'object_name': 'ExamCategory', 'perms': {'add': True, 'change': True, 'delete': True, 'view': True}, 'admin_url': '/admin/quiz/examcategory/', 'add_url': '/admin/quiz/examcategory/add/', 'view_only': False}

{{model.count}}

Object -

{{model.all}}

Object -

{{model.objects.all}}

Object -

enter image description here

----------------------------------------------------------------
env > lib > django > contrib > templates > admin > app_list.html
----------------------------------------------------------------

{% load i18n %}

{% if app_list %}
  {% for app in app_list %}
    <div class="app-{{ app.app_label }} module{% if app.app_url in request.path %} current-app{% endif %}">
      <table>
        <caption>
          <a href="{{ app.app_url }}" class="section" title="{% blocktranslate with name=app.name %}Models in the {{ name }} application{% endblocktranslate %}">{{ app.name }}</a>
        </caption>
        {% for model in app.models %}
          <tr class="model-{{ model.object_name|lower }}{% if model.admin_url in request.path %} current-model{% endif %}">
            {% if model.admin_url %}
              <th scope="row"><a href="{{ model.admin_url }}"{% if model.admin_url in request.path %} aria-current="page"{% endif %}>{{ model.name }}</a></th>
            {% else %}
              <th scope="row">{{ model.name }}</th>
            {% endif %}

            <!-- Temporary added this line to get count from model -->
            {% if model.add_url %}
              <td>Object - {{ model.count }}</td>
            {% else %}
              <td></td>
            {% endif %}

            {% if model.add_url %}
              <td><a href="{{ model.add_url }}" class="addlink">{% translate 'Add' %}</a></td>
            {% else %}
              <td></td>
            {% endif %}

            {% if model.admin_url and show_changelinks %}
              {% if model.view_only %}
                <td><a href="{{ model.admin_url }}" class="viewlink">{% translate 'View' %}</a></td>
              {% else %}
                <td><a href="{{ model.admin_url }}" class="changelink">{% translate 'Change' %}</a></td>
              {% endif %}
            {% elif show_changelinks %}
              <td></td>
            {% endif %}
          </tr>
        {% endfor %}
      </table>
    </div>
  {% endfor %}
{% else %}
  <p>{% translate 'You don’t have permission to view or edit anything.' %}</p>
{% endif %}
Cipher
  • 2,060
  • 3
  • 30
  • 58
  • You might want to have a look at this question: https://stackoverflow.com/questions/6241906/display-number-of-instances-for-each-model-in-djangos-admin-index. It suggests adding your field in admin.py and extending the base template. – Antoine Nov 30 '21 at 07:46
  • @AntoineAndrieu this seems to be little difficult for me, as AdminSite.index have been changed a lot, count need to be added in this `_build_app_dict()` but doesn't find to be a optimal solution – Cipher Nov 30 '21 at 08:30

0 Answers0