gpt4 book ai didi

django admin 1.7 + django-grappelli 2.6.1 中的 jQuery 日期选择器本地化

转载 作者:行者123 更新时间:2023-12-01 05:02:08 25 4
gpt4 key购买 nike

我对 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",)

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

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

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

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

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

最佳答案

我不认为问题与 Django 相关,但主要与 jQuery/Grappelli 相关。
据我记得 Grappelli 附带了自己的 jQuery(Django admin 也是如此),并使用命名空间来避免冲突,因此调用 $.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。无论如何,这只是最佳实践,不应该阻止您的代码以任何方式工作,因为您说文件已正确加载。

关于django admin 1.7 + django-grappelli 2.6.1 中的 jQuery 日期选择器本地化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25852415/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com