【问题标题】:Multiple versions of jQuery in Django admin templateDjango 管理模板中的多个版本的 jQuery
【发布时间】: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)

【问题讨论】:

    标签: javascript jquery django django-admin


    【解决方案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)
    

    但也许有更好的解决方案

    【讨论】:

      猜你喜欢
      • 2012-06-23
      • 2011-04-18
      • 1970-01-01
      • 2020-12-23
      • 2023-03-23
      • 2011-03-12
      • 1970-01-01
      • 1970-01-01
      • 2010-10-20
      相关资源
      最近更新 更多