Как получить идентификатор модели Django со страницы администратора с помощью JavaScript - PullRequest
0 голосов
/ 24 сентября 2019

Предположим, у меня есть модель Django, подобная этой.

class Car(models.Model):
    speed = models.IntegerField()
    color = models.CharField(max_length=120)

Я зарегистрировал ее в admin через

admin.site.register(Car)

Я хочу добавить пользовательскую кнопку JS для просмотра объекта сайта администратора,который предупредит значение цвета экземпляра модели автомобиля.Поэтому, когда я нажимаю на нее, я получаю что-то вроде «Автомобиль с идентификатором 13 равен красный »

Как я могу получить идентификатор объекта и значение цветового полячерез JavaScript?

1 Ответ

0 голосов
/ 24 сентября 2019

Вы должны расширить change_form.html шаблон для вашего приложения (https://docs.djangoproject.com/en/2.2/ref/contrib/admin/#overriding-vs-replacing-an-admin-template)

Например, у меня есть приложение store, а внутри models.py Я поставил Car модель.

Затем внутри store/templates/admin/store/change_form.html Я поместил этот шаблон:

{% extends "admin/change_form.html" %}
{% load i18n admin_urls %}

{% block content %}
{{ block.super }}
        <script>
                const object = {
                        pk: {{ original.pk }},
                        color: '{{ original.color }}',
                };
        </script>
{% endblock %}

{% block object-tools-items %}
{{ block.super }}

<li>
        <a href="" id="my-button">My button</a>
        <script>
                const button = document.getElementById('my-button');
                button.addEventListener('click', function() {
                        alert(`The car with ${object.pk} is ${object.color}`); 
                });
        </script>
</li>

{% endblock %}

Вид администратора:

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...