Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
351 views
in Technique[技术] by (71.8m points)

python - django : using admin datepicker

I'm trying to use the admin datepicker in my own django forms.

Roughly following the discussion here : http://www.mail-archive.com/django-users@googlegroups.com/msg72138.html

I've

a) In my forms.py included the line

from django.contrib.admin import widgets

b) and used the widget like this :

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

c) And in my actual template I've added :

{{form.media}}

To include the js / styles etc.

However, when I try to view my form I get no nice widget; just an ordinary text box. And the Firefox javascript error console shows me :

gettext is not defined in calendar.js (line 26)

and

addEvent is not defined in DateTimeShortcuts.js (line 254)

Any suggestions? Is this a bug in Django's own javascript library?

Update : Basically, need to include the core and (or fake) the i18lization

Update 2 : Carl points out this is pretty much a duplicate of Using Django time/date widgets in custom form (although starting from a different position)

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

No, it's not a bug.

It's trying to call the gettext() internationalization function in js. You can do js internationalization much like you do it in python code or templates, it's only a less known feature.

If you don't use js internationalization in your project you can just put.

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

in your top template so the js interpreter doesn't choke.

This is a hacky way to solve it I know.

Edit:

Or you can include the exact jsi18n js django admin references to get it working even with other languages. I don't know which one it is.

This was posted on django-users today:

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

Maybe it was you, anyway, just in case.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...