2009-03-19 10 views
12

私は自分のdjangoフォームでadmin datepickerを使用しようとしています。django:admin datepickerを使用

大体ここの議論を以下:http://www.mail-archive.com/[email protected]/msg72138.html

私は

a)は私のforms.pyでライン

from django.contrib.admin import widgets 

Bを含む)と、このようにウィジェットを使用しました:

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

c)そして私の実際のテンプレートには、

{{form.media}} 

私は自分のフォームを表示しようとすると、私は素敵なウィジェットを取得していない、しかしなど

をJS /スタイルを含めるには、普通のテキストボックスです。そして、JavaScriptエラーコンソールFirefoxは私を示しています

gettextのはcalendar.js(ライン26)

addEventがDateTimeShortcuts.jsに定義されていません(ライン254)

で定義されていません助言がありますか?これはDjango自身のjavascriptライブラリのバグですか?

更新:基本的に、コア及び(又は偽)を含める必要がi18lization

アップデート2:カールは、(異なる位置から開始するが)、これはかなりUsing Django time/date widgets in custom formの複製である指摘

+0

この質問は重複しています。ここの答えを見てください:http://stackoverflow.com/questions/38601/using-django-time-date-widgets-in-custom-form/38916#38916 –

+0

ありがとう...面白い、それはポップアップしませんでしたいずれかの「関連する質問」ここのサイドバーまたは質問を書くとき – interstar

+0

Carl Meyerの質問への答えは、これが自分自身を実装する以外にも多くの作業を必要とする回答であることを明確にしていますjQueryや他のよく知られているライブラリを使用してdatepicker。 – rossdavidh

答えて

5

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

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

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

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

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

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

編集:

それとも、それは他の言語でも、作業を取得するために、正確なjsi18n JSジャンゴ管理者の参照を含めることができます。私はそれがどちらか分かりません。

これは、今日のジャンゴ - ユーザーに投稿されました:

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

多分それは念のために、とにかく、あなたでした。

+0

ありがとう...はい、それはハッキーですが、それは一時的な修正としてその問題を過ぎています – interstar

+0

リンクのおかげで、それはよく書かれ、プロセスを明確にし、少しハッキーを感じる。 – monkut

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の

+1

URLマッピングにjsi18nを追加していない場合は、追加する必要はありません。 urls.pyに適切なものを追加すると、gettext関数がどこにあるのでしょうか?urls.PR:urlpatterns = patterns( ''、 (r '^ jsi18n /(?P \ S +?)/ $'、 'django.views。 i18n.javascript_catalog ')、 ) – Vasil

+0

良い点..私は管理者のフォームにその行も見つかりましたが。だから私はそれがこのサーバーで動作すると推定します。どちらの場合に...なぜ私にとってそうでなければ彼らのために。たぶんそれは管理ツリーの相対的な場所にあるからです。 – interstar

+0

:)はい、それは相対的なURIなので、管理テンプレートで何が解決されているかを把握できれば、それを絶対URLとして配置して動作させることができます。私はdatepickerのイベントの適切な国際化がうまくいくと思う。 – Vasil

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 }} 
関連する問題