Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
向Django管理界面添加jQuery脚本_Jquery_Python_Django_Admin - Fatal编程技术网

向Django管理界面添加jQuery脚本

向Django管理界面添加jQuery脚本,jquery,python,django,admin,Jquery,Python,Django,Admin,我会稍微简化一下情况。假设我有一个叫实验室的模型 from django.db import models class Lab(models.Model): acronym = models.CharField(max_length=20) query = models.TextField() 字段查询几乎总是与字段首字母缩略词相同。因此,我希望在Django管理界面的首字母缩写词字段中输入文本后,自动填写查询字段。此任务必须由jQuery脚本执行 因此,如果我举一个例子:您

我会稍微简化一下情况。假设我有一个叫实验室的模型

from django.db import models

class Lab(models.Model):
    acronym = models.CharField(max_length=20)
    query = models.TextField()
字段
查询
几乎总是与字段
首字母缩略词
相同。因此,我希望在Django管理界面的
首字母缩写词
字段中输入文本后,自动填写
查询
字段。此任务必须由jQuery脚本执行

因此,如果我举一个例子:您希望通过Django管理界面向数据库添加一个新的实验室。单击“添加”按钮,然后在带有两个字段的空表单上着陆。您可以手动在
首字母缩写词
字段中填入一个值,如
ABCD
,然后
查询
字段应自动以相同的值完成,这意味着
ABCD


我应该如何继续?

要将媒体添加到管理员,您只需将其添加到管理员类的元类媒体,例如:

admin.py

class FooAdmin(admin.ModelAdmin):
    # regular stuff
    class Media:
        js = (
            '//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js', # jquery
            'js/myscript.js',       # project static folder
            'app/js/myscript.js',   # app static folder
        )

admin.site.register(Foo, FooAdmin)
如果只包含一个文件,请注意后面的逗号,因为它必须是元组。你也可以用这种方式选择css

管理员已经包含了jquery的(旧版本)。要使用快捷方式,请将其添加到“myscript”文件的顶部:

if (!$) {
    $ = django.jQuery;
}

为了解决你的问题,我愿意。您可以向任何DOM节点添加js事件,以触发myscript文件中的ajax调用到正确的管理视图进行处理。

这可能已经改变,因为这是一个老问题,但从Django 1.8.1开始,css被指定为字典,键是目标媒体,值是路径元组,如上所述。使用逗号分隔以多个媒体为目标,如果是非特定的,则使用“all”。
(函数($){//your code})(django.jQuery)
的工作原理类似于一个咒语thanksBetter和shorter
django.jQuery(function($){//stuff})