I just installed Django Daterange Filter 1.3.0 (https://github.com/DXist/django-daterange-filter) on a Django 1.9 project. Took a little CSS fiddling to get it to display properly with Grappelli, but other than that it worked like a charm.
Nate On Thursday, March 19, 2009 at 8:37:56 AM UTC-5, Paul Nema wrote: > > I've noticed many people new to Django (and sometimes also new to Python) > often post the same/similar questions in various forums. How to I get > something to work and/or do you have an example for X. As I've also > experienced this problem I've decided to post my little solution. Its not > the only way to do this, just the way I did it. Hopefully this will provide > the answer people are searching for or at least get them started. I guess > it will also serve as a quick code review by those so inclined to comment. > > > You've probably heard of DRY but I think something is missing. There > should also be a Don't Repeat Other's Work (DROW) when they already solved > the problem. Thus another motivation to post this. On a side note there is > a bit of debate out there about using the Django AdminDateWidget verse > other solutions (Jquery, etc). Your decision to make but why increase > dependencies when you don't have to. > > > As I'm still learning Django everything in the code below may not be > required but I'm listing it anyway. You may need to modify to your > particular environment. As I don't have a blog to post this I'm sending it > to this group. I'm open to any suggestions for a better place to post this. > > > For this example I will focus on adding a date picker for date of birth > (dob) and a date time picker for sponsor sign date (sponsor_sign_date). Key > items are in *Bold*. > > > Another reference to adding the AdminDateTime widget is here: > http://stackoverflow.com/questions/38601/using-django-time-date-widgets-in-custom-form > > > > > --------------- > > My top level (django-admin.py startproject izbo) directory Structure: > > mylogin@LX-D620:~/dev/izbo$ ll > > drwxrwxr-x 2 mylogin mylogin 4096 2009-03-17 10:52 account/ > > drwxr-xr-x 2 mylogin mylogin 4096 2009-03-17 10:53 add/ > > drwxr-xr-x 2 mylogin mylogin 4096 2009-03-18 04:34 adjudicator/ > > drwxrwxr-x 2 mylogin mylogin 4096 2009-03-18 09:43 application/ > > drwxr-xr-x 2 mylogin mylogin 4096 2009-03-18 10:06 contract/ > > drwxrwxrwx 2 mylogin mylogin 4096 2009-03-18 09:49 DB/ > > drwxr-xr-x 2 mylogin mylogin 4096 2009-03-17 10:51 employer/ > > drwxr-xr-x 2 mylogin mylogin 4096 2009-03-18 04:34 entity/ > > -rw-r--r-- 1 mylogin mylogin 207 2009-03-08 04:54 exclude > > drwxrwxrwx 2 mylogin mylogin 4096 2009-03-18 10:06 gzbo/ > > -rw-r--r-- 1 mylogin mylogin 0 2009-01-06 04:55 __init__.py > > -rw-r--r-- 1 mylogin mylogin 546 2009-01-06 04:55 manage.py > > drwxrwxrwx 5 mylogin mylogin 4096 2009-02-08 12:35 media/ > > drwxr-xr-x 2 mylogin mylogin 4096 2009-03-17 10:53 member/ > > drwxr-xr-x 2 mylogin mylogin 4096 2009-03-17 10:52 note/ > > drwxr-xr-x 2 mylogin mylogin 4096 2009-02-20 12:47 search/ > > -rw-r--r-- 1 mylogin mylogin 4192 2009-03-05 23:39 settings.py > > drwxrwxrwx12 mylogin mylogin 4096 2009-03-16 11:48 templates/ > > -rw-r--r-- 1 mylogin mylogin 2118 2009-03-16 11:16 urls.py > > > -------------- > > Media directory Listing: > > mylogin@LX-D620:~/dev/izbo/media$ ll > > total 12 > > drwxr-xr-x 5 mylogin mylogin 4096 2009-03-18 10:56 admin/ > > drwxrwxrwx 2 mylogin mylogin 4096 2009-02-07 15:45 css/ > > drwxrwxrwx 2 mylogin mylogin 4096 2009-01-27 10:07 images/ > > lrwxrwxrwx 1 mylogin mylogin 36 2009-03-18 11:07 img -> > /home/mylogin/dev/izbo/media/admin/img/ > > > * Note: admin/ is 'cp -r' of directory > /usr/lib/python2.5/site-packages/django/contrib/admin/media. Then I linked > the img directory. > > > > ------------ > > In my “settings.py” > > > import os.path > > PROJECT_DIR = os.path.dirname(__file__) > > > MEDIA_ROOT = os.path.join(PROJECT_DIR, 'media') > > MEDIA_URL = 'http://www.izbo.com/media/' > > *ADMIN_MEDIA_PREFIX = '/media/admin/'* > > TEMPLATE_DIRS = ( > > os.path.join(PROJECT_DIR, 'templates'), > > ... > > ) > > > ---------------- > > In my top level “urls.py” file > > *from django.contrib import admin * > > > urlpatterns = patterns('', > > # Uncomment the admin/doc line below and add 'django.contrib.admindocs' > > # to INSTALLED_APPS to enable admin documentation: > > (r'^admin/doc/', include('django.contrib.admindocs.urls')), > > > *# Add this to get widgets.AdminDateWidget() working for non is_staff, > is_superuser * > > *# This must be placed before (r'^admin/(.*)', admin.site.root), as > that gobals up everything * > > *(r'^admin/jsi18n/$', 'django.views.i18n.javascript_catalog'), * > > > # Uncomment the next line to enable the admin: > > (r'^admin/(.*)', admin.site.root), > > > # IZBO related URLs > > (r'^$', splash), > > ..... > > ) > > > > ------------- > > In “gzbo/models.py” I have my class > > > # > > # Application > > # > > class App (Record) : > > # Personal Information > > *dob = DateField(null=True, * > > *verbose_name=_('Date of Birth'), * > > *help_text=_('Enter Date of Birth Format: CCYY-MM-DD')) * > > *sponsor_sign_date = DateTimeField(null=True, * > > *blank=True, * > > *verbose_name=_('Date Sponsor Electronically Signed')*) > > > -------------- > > In “application/” I have a forms.py that describes the fields I want to > have a date time picker > > So in application/forms.py > > > # > > # DJANGO Libraries > > # > > from django.forms import ModelForm > > from django import forms > > from django.contrib.admin import widgets > > > class AppForm(ModelForm) : > > # Personal Information > > *dob = forms.DateField( * > > *widget = widgets.AdminDateWidget) * > > *sponsor_sign_date = forms.DateTimeField ( required = False, * > > *widget = widgets.AdminSplitDateTime) * > > .... # other fields > > class Meta : > > model = App > > > ---------------- > > In “templates/application/appCreate.html” I have the follow. The > src=”/media/...” is referencing directory ~/dev/izbo/media > > > {% extends 'base.html' %} > > > {% block css %} > > <link href="/media/css/main.css" rel="stylesheet" type="text/css" > media="screen" /> > > *<script type="text/javascript" src="/admin/jsi18n/"></script> * > > *<script type="text/javascript" src="/media/admin/js/core.js"></script> * > > <script type="text/javascript" > src="/media/admin/js/admin/RelatedObjectLookups.js"></script> > > *{{ form.media }} * > > {% endblock css %} > > > {% block title %} > > IZBO - Application > > {% endblock title %} > > ... > > {{ form.as_p }} > > ... > > > Key scripts for date picker seem to be: > > /admin/jsi18n/ > > /media/admin/js/core.js > > and {{ form.media }} which adds the two lines below (calendar.js and > DateTimeShortcuts.js) > > /media/admin/js/calendar.js > > /media/admin/js/admin/DateTimeShortcuts.js > > > Summary: > > 1. > > Update your settings.py file MEDIA_ROOT, MEDIA_URL and > ADMIN_MEDIA_PREFIX to point to where you plan to keep the images and js > for > the picker. TEMPLATE_DIRS points to where you keep your template files. > 2. > > Create a ModelForm based upon the class containing the date and/or > datetime field/s > 3. > > Reference the correct widgets for the date and/or datetime fields. > I.E. widget = widgets.AdminDateWidget or widget = > widgets.AdminSplitDateTime > 4. > > In your template file reference the correct javascript stuff > 5. > > Update your urls.py file to intercept the jsi18n call and send the > correct version. > > > Have Fun, Stay Safe and Keep the Django Faith > > > > > > > > > > > > > > > > > > > > > > > > -- You received this message because you are subscribed to the Google Groups "Django users" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at https://groups.google.com/group/django-users. To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/7285196e-27e2-4880-97a9-7798d3f35ee6%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.

