我对Django还是很陌生的,所以在完成正式的教程之后,我将尝试通过步骤学习更多的知识,并尝试解决常见的问题。
目前,我一直在寻找一种(可能是正确的)方法,在我的应用程序的管理页面中使用本地化的数据显示器,它与django-grappelli一起工作。
我试图直接修改grappelli文件,但我觉得这肯定不是正确的方法。
我的应用程序很简单,离你在官方教程之后剩下的地方不远。
我稍微修改了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" ] );
但看起来我还远没有做好。有小费吗?
发布于 2014-09-16 07:04:43
我不认为问题与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是jQuery包,Grappelli应该使用,就像在Grappelli码中一样
另外,您似乎正在尝试使用MEDIA_URL
和MEDIA_ROOT
(给定路径中的"/media/"
部分)来服务一个"/media/"
文件,但我非常确定,在Django中处理静态文件和资产的首选方法是使用STATIC_ROOT
和STATIC_URL
。无论如何,这只是最好的实践,不应该阻止您的代码以任何方式工作,因为您说文件是正确加载的。
https://stackoverflow.com/questions/25852415
复制相似问题