use*_*405 27 python django jquery admin
我会稍微简化一下情况.假设我有一个名为Lab的模型.
from django.db import models
class Lab(models.Model):
acronym = models.CharField(max_length=20)
query = models.TextField()
Run Code Online (Sandbox Code Playgroud)
该领域query几乎总是与该领域相同acronym.因此,我希望在Django管理界面query的acronym字段中输入文本后自动填写该字段.此任务必须由jQuery脚本执行.
所以,如果我举个例子:你想通过Django管理界面向数据库添加一个新的实验室.单击"添加"按钮,然后使用两个字段登陆空白表单.您可以手动acronym使用诸如此类的值填充该字段,ABCD然后该query字段应以相同的值自动完成,这意味着ABCD.
我该怎么办?
Hed*_*ide 54
要向管理员添加媒体,您只需将其添加到管理类的元类媒体中,例如:
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)
Run Code Online (Sandbox Code Playgroud)
如果你只包含一个文件,请记住尾随逗号,因为它必须是一个元组.你也可以这样选择css.
管理员已经包含了(旧版本)的jquery.要将其用于快捷方式,请将其添加到"myscript"文件的顶部:
if (!$) {
$ = django.jQuery;
}
Run Code Online (Sandbox Code Playgroud)
为了解决您的问题,我会扩展管理员.您可以将js事件添加到任何DOM节点,以将myscript文件中的ajax调用触发到正确的管理视图进行处理.