javascript - 如何通过 javascript 从管理页面检索 Django 模型 ID

标签 javascript python django reactjs django-admin

假设我有一个像这样的 Django 模型。

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

我通过管理在管理中注册了它

admin.site.register(Car)

我想为管理站点对象 View 添加自定义 JS 按钮,它将提醒汽车模型实例的颜色值。因此,当我按下它时,我会得到类似“ID 为 13 的汽车是红色”的信息

如何通过 JavaScript 获取对象的 ID 和颜色字段的值?

最佳答案

您必须为您的应用扩展 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 %}

管理员 View :

enter image description here

关于javascript - 如何通过 javascript 从管理页面检索 Django 模型 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58075140/

相关文章:

javascript - 如何禁用 tbody

python - 将数据框 reshape 为具有无限行并在没有值的情况下填充零的数据框

python - 基本 django-rest-framework : how to get started writing a view?

python - Django 和体育类(class)设计应用程序

javascript - DOJO 1.8 移动小部件未在屏幕上呈现

javascript - 多个this.setState(this.state)不重新渲染页面

javascript - 增加 Action 创建器中的变量

python - PySpark - Spark DataFrame 数组与 Python 列表不同吗?

python - 如何检查pandas数据框中的 bool 条件

python - 一旦对象满足特定条件就发送电子邮件