在中向Django管理添加jQuery脚本

2024-06-25 07:12:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我要稍微简化一下。假设我有一个模型叫实验室

from django.db import models

class Lab(models.Model):
    acronym = models.CharField(max_length=20)
    query = models.TextField()

字段query几乎总是与字段acronym相同。因此,我希望在Django管理界面的acronym字段中输入文本后自动填充query字段。此任务必须由jQuery脚本执行。

因此,如果我举一个例子:您想通过Django管理界面向数据库添加一个新的实验室。单击“添加”按钮,您将在带有两个字段的空窗体上着陆。用ABCD等值手动填充acronym字段,然后query字段应自动用相同的值完成,这意味着ABCD

我该怎么做?


Tags: djangofrom模型importdbmodel界面models
1条回答
网友
1楼 · 发布于 2024-06-25 07:12:56

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

管理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;
}

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

相关问题 更多 >