13

自分のdjangoフォームでadmindatepickerを使用しようとしています。

ここでの議論の大まかなフォロー:http://www.mail-archive.com/django-users@googlegroups.com/msg72138.html

私は

a)私のforms.pyには次の行が含まれていました

from django.contrib.admin import widgets

b)そしてこのようなウィジェットを使用しました:

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

c)そして私の実際のテンプレートに追加しました:

{{form.media}}

js/スタイルなどを含めるため。

ただし、フォームを表示しようとすると、優れたウィジェットが表示されません。通常のテキストボックスです。そして、Firefox javascriptエラーコンソールは私に示しています:

gettextがcalendar.jsで定義されていません(26行目)

addEventがDateTimeShortcuts.jsで定義されていません(254行目)

助言がありますか?これはDjango独自のjavascriptライブラリのバグですか?

更新:基本的に、コアと(または偽の)i18lizationを含める必要があります

アップデート2:カールは、これはカスタム形式でのDjangoの時刻/日付ウィジェットの使用とほぼ同じであると指摘しています(ただし、別の位置から開始します)

4

3 に答える 3

5

いいえ、バグではありません。

js で gettext() 国際化関数を呼び出そうとしています。Python コードやテンプレートで行うのと同じように js の国際化を行うことができますが、これはあまり知られていない機能です。

プロジェクトでjs国際化を使用しない場合は、そのまま置くことができます。

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

トップテンプレートに追加して、js インタープリターがチョークしないようにします。

これは私が知っているそれを解決するためのハッキーな方法です。

編集:

または、正確な jsi18n js django admin 参照を含めて、他の言語でも動作させることができます。どれだかわかりません。

これは今日django-usersに投稿されました:

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

念のため、とにかく、それはあなただったのかもしれません。

于 2009-03-19T03:42:13.737 に答える
2

テンプレートに次の行を明示的に追加することで、前半を解決したと思います。

<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 がわからないことが報告されています

于 2009-03-19T03:46:03.337 に答える
1

あなたはあなたのために以下の作品を見つけるかもしれません:

<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 }} 
于 2009-03-26T12:42:14.353 に答える