假设我有一个像这样的 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 :
关于javascript - 如何通过 javascript 从管理页面检索 Django 模型 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58075140/