Добавить ссылку на пользовательский вид администратора django - PullRequest
0 голосов
/ 10 декабря 2018

Я создал пользовательское административное представление, как описано здесь .

class MyAdmin(admin.ModelAdmin):
    def get_urls(self):
        urls = super().get_urls()
        my_urls = [
            path('stats/', self.admin_site.admin_view(self.stats)),
        ]
        return my_urls + urls

    def stats(self, request):
        request.current_app = self.admin_site.name

        context = dict(
           # Include common variables for rendering the admin template.
           self.admin_site.each_context(request),
           # Anything else you want in the context...
           key='blah',
        )
        return TemplateResponse(request, "sometemplate.html", context)

URL работает, и шаблон загружается.Но как я могу получить ссылку на мой новый пользовательский вид в обзоре администратора Django?

enter image description here

1 Ответ

0 голосов
/ 11 декабря 2018

Хотя это не очень хороший способ, но вы можете попробовать переопределить index.html по умолчанию для администратора django следующим образом:

   {% for model in app.models %}
        <tr class="model-{{ model.object_name|lower }}">
        {% if model.admin_url %}
            <th scope="row"><a href="{{ model.admin_url }}">{{ model.name }}</a></th>
        {% else %}
            <th scope="row">{{ model.name }}</th>
        {% endif %}

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

        {% if model.admin_url %}
            <td><a href="{{ model.admin_url }}" class="changelink">{% trans 'Change' %}</a></td>
        {% else %}
            <td>&nbsp;</td>
        {% endif %}
        </tr>

   {% endfor %}
    <!-- extra link you want to display -->
    <tr>
    <th scope="row"><a href="link_url">link_name</a></th>
    <td><a href="link_url" class="changelink">{% trans 'Change' %}</a></td>
    </tr>

После переопределения этого блока поместите index.html в каталог templates / admin вашегопроект.Надеюсь, это поможет.

...