2014-10-23 4 views
2

Недавно я обновился до Django 1.7, и я начинаю видеть эти предупреждения о часовом поясе в полях DateTime/Time, когда мой локальный часовой пояс отличается от часового пояса сервера, когда я просматриваю их в интерфейсе администратора. Я определенно понимаю, почему они добавили это, и это устраняет много неопределенности, особенно с DateTime, но у меня есть TimeField, который фактически хранит время, соответствующее часовому поясу пользователя вошедшего в систему (как сохранено в их профиле пользователя), поэтому предупреждающее сообщение фактически вводит в заблуждение в этом случае. Я также видел, что это действительно Django 1.7, который добавил эту функциональность (см. https://github.com/django/django/blob/master/django/contrib/admin/static/admin/js/admin/DateTimeShortcuts.js#L63 и https://docs.djangoproject.com/en/dev/releases/1.7/#admin-shortcuts-support-time-zones).Django 1.7 Admin - Как скрыть предупреждение о часовом поясе?

Мой вопрос: как отключить эти сообщения от показа? Если да, можно ли указать, как скрыть предупреждения на основе каждого поля?

ответ

5

Если добавить Media класс к вашему ModelAdmin вы можете включить CSS-файл, который делает эти предупреждения исчезают.

# admin.py 
class MyModelAdmin(ModelAdmin): 
    model = MyModel 

    class Media(object): 
     css = {'all': ('no-more-warnings.css',)} 

Файл CSS должен включать в себя следующее правило:

/* no-more-warnings.css */ 
.timezonewarning { 
    display: none; 
} 
1

Я добавил этот код в файл js, который загружается на всех страницах моего приложения.

jQuery(document).ready(function($) { 

    // override django 1.7 timezone warning 
    DateTimeShortcuts.addTimezoneWarning = function(){return false;}; 
}); 
Смежные вопросы