Django 管理模板中的多个版本的 jQuery
Posted
技术标签:
【中文标题】Django 管理模板中的多个版本的 jQuery【英文标题】:Multiple versions of jQuery in Django admin template 【发布时间】:2011-06-11 10:53:21 【问题描述】:没有指定任何内容,Django 1.2.4 管理模板包括 jQuery 1.4.2。我刚刚下载了 1.4.4 附带的 jQuery UI 框架。因此,我想使用 1.4.4 的 UI 框架。但是,我不确定如何从 Django 管理模板中删除它。在这种情况下我该怎么办?
class FooAdmin(admin.ModelAdmin):
class Media:
# this will cause both jQuery 1.4.2 and 1.4.4 to be included. Not sure if that's a problem or not.
js = ("js/foo.js", "js/lib/jquery-1.4.4.min.js", "js/lib/jquery-ui-1.8.8.custom.min.js")
admin.site.register(Foo, FooAdmin)
【问题讨论】:
【参考方案1】:您可以从 ModelAdmin 覆盖 _media 属性
这是 _media 形式的实际 django 代码。
class FooAdmin(admin.ModelAdmin):
def _media(self):
from django.conf import settings
js = ['js/core.js', 'js/admin/RelatedObjectLookups.js',
'js/jquery.min.js', 'js/jquery.init.js']
if self.actions is not None:
js.extend(['js/actions.min.js'])
if self.prepopulated_fields:
js.append('js/urlify.js')
js.append('js/prepopulate.min.js')
if self.opts.get_ordered_objects():
js.extend(['js/getElementsBySelector.js', 'js/dom-drag.js' , 'js/admin/ordering.js'])
return forms.Media(js=['%s%s' % (settings.ADMIN_MEDIA_PREFIX, url) for url in js])
media = property(_media)
但也许有更好的解决方案
【讨论】:
以上是关于Django 管理模板中的多个版本的 jQuery的主要内容,如果未能解决你的问题,请参考以下文章
如何使用Django模板在javascript中访问ajax jquery中的模板变量