Django: с помощью администратора DatePicker - PullRequest
12 голосов
/ 19 марта 2009

Я пытаюсь использовать дату администратора в моих собственных формах django.

Примерно после обсуждения здесь:

Я

а) В мои forms.py включена строка

from django.contrib.admin import widgets

б) и использовал виджет так:

date = forms.DateTimeField(widget=widgets.AdminDateWidget())

в) И в моем собственном шаблоне я добавил:

{{form.media}}

Чтобы включить JS / стили и т. Д.

Однако, когда я пытаюсь просмотреть свою форму, у меня не появляется красивый виджет; просто обычное текстовое поле. И консоль ошибок Firefox javascript показывает мне:

gettext не определен в calendar.js (строка 26)

и

addEvent не определено в DateTimeShortcuts.js (строка 254)

Есть предложения? Это ошибка в собственной библиотеке JavaScript в Django?

Обновление: в основном нужно включить ядро ​​и (или подделку) i18lization

Обновление 2: Карл отмечает, что это в значительной степени дубликат Использование виджетов времени и даты Django в пользовательской форме (хотя и с другой позиции)

Ответы [ 3 ]

5 голосов
/ 19 марта 2009

Нет, это не ошибка.

Он пытается вызвать функцию интернационализации gettext () в js. Вы можете делать интернационализацию js так же, как вы делаете это в коде или шаблонах python, это только менее известная функция.

Если вы не используете интернационализацию js в своем проекте, вы можете просто поставить.

<script>function gettext(txt){ return txt }</script>

в вашем верхнем шаблоне, чтобы интерпретатор js не подавился.

Это хакерский способ решить эту проблему, я знаю.

Edit:

Или вы можете включить точные ссылки администратора jsi18n js django, чтобы он работал даже с другими языками. Я не знаю, какой это.

Это было опубликовано на django-users сегодня:

http://groups.google.com/group/django-users/browse_thread/thread/2f529966472c479d#

Может быть, это был ты, во всяком случае, на всякий случай.

2 голосов
/ 19 марта 2009

Я думаю, что я решил первую половину, явно добавив эти строки в мой шаблон:

<script type="text/javascript" src="../../../jsi18n/"></script> 
<script type="text/javascript" src="/admin_media/js/core.js"></script>
<script type="text/javascript" src="/admin_media/js/admin/RelatedObjectLookups.js"></script>

Но он все еще сообщает, что не знает gettext

1 голос
/ 26 марта 2009

Вы можете найти следующие работы для вас:

<link href="/media/css/base.css" rel="stylesheet" type="text/css" media="screen" />
<script type="text/javascript" src="/admin/jsi18n/"></script>
<script type="text/javascript" src="/media/js/core.js"></script>
{{ form.media }} 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...