【问题标题】:jQuery datepicker localization in django admin 1.7 + django-grappelli 2.6.1django admin 1.7 + django-grappelli 2.6.1 中的 jQuery datepicker 本地化
【发布时间】:2014-11-09 05:42:04
【问题描述】:

我对 Django 还是很陌生,所以在完成官方教程后,我正在尝试逐步学习更多内容并尝试解决常见问题。

我目前一直在寻找一种(可能是正确的)方法来在我的应用管理页面中使用本地化日期选择器,该方法适用于 django-grappelli。

我试图直接修改 grappelli 文件,但我觉得这绝对不是正确的方法。

我的应用程序非常简单,距离official tutorial 之后的位置不是很远。

我稍微修改了 admin.py 文件,如下所示:

[...]

@admin.register(Question)
class QuestionAdmin(admin.ModelAdmin):
    #fields = ['pub_date', 'question_text']
    #date_hierarchy = 'pub_date'
    class Media:
        js = ("/media/mytime/js/ui.datepicker-it.js",)

    list_display = ['question_text', 'pub_date']
    fieldsets = [
        (None,                  {'fields': ['question_text']}),
        ('+ Date information',  {'fields': ['pub_date'], 'classes': ['grp-collapse grp-closed']}),
    ]
    inlines = [ChoiceInline]
    actions = ['prepend_letter']

[...]

通过添加:

class Media:
    js = ("/media/mytime/js/ui.datepicker-it.js",)

并将文件正确放入媒体目录,现在文件在浏览问题修改页面时出现在页面源代码中。

太糟糕了,这似乎还不够,因为日期选择器仍然显示为未翻译。

我什至尝试通过控制台直接注入该行:

$.datepicker.setDefaults( $.datepicker.regional[ "it" ] );

但看起来我还远远没有做对。有什么建议吗?

【问题讨论】:

    标签: jquery python django datepicker django-grappelli


    【解决方案1】:

    我认为问题与 Django 无关,但主要与 jQuery/Grappelli 相关。
    据我所知,Grappelli 带有自己的 jQuery(Django 管理员也是如此),并使用命名空间来避免冲突,因此调用 $.datepicker 或 jQuery.whatever 不会与 Grappelli 的 jQuery 交互。

    如果你的ui.datepicker-it.js 看起来像这样:

    jQuery(function($){
      // do something on $.datepicker ...
    });
    

    尝试更改它:

    (function($){
      // do something on $.datepicker ...
    })(grp.jQuery);
    

    grp.jQuery 是 Grappelli 应该使用的 jQuery 包,如 Grappelli code

    附带说明,您似乎正在尝试使用 MEDIA_URLMEDIA_ROOT 提供 .js 文件(鉴于路径中的 "/media/" 部分),但我很确定首选方式在 Django 中提供静态文件和资产是使用 STATIC_ROOTSTATIC_URL。无论如何,这只是最佳实践,不应阻止您的代码以任何方式工作,因为您说文件已正确加载。

    【讨论】:

    • 像魅力一样工作。并感谢您提供其他免费提示!
    猜你喜欢
    • 2023-03-27
    • 2012-03-03
    • 2023-04-08
    • 1970-01-01
    • 2011-08-02
    • 2010-11-29
    • 2012-01-08
    • 1970-01-01
    • 2015-06-10
    相关资源
    最近更新 更多