Виджет AdminSplitDateTime из админки Django

  • Опубликовано:
На основе этого поста прикрутил виджет календаря на страницу.

1.
# schedule.forms.py
from django import forms
from widgets import AdminSplitDateTime
from schedule.models import Schedule


class ScheduleForm(forms.ModelForm):
    def __init__(self, *args, **kwargs):
        super(ScheduleForm, self).__init__(*args, **kwargs)
        self.fields['slug'].widget.attrs['readonly']='readonly'
        # activating calendar
        self.fields['begins_at'].widget = AdminSplitDateTime()
        self.fields['ends_at'].widget = AdminSplitDateTime()

    class Meta:
        model = Schedule
        exclude = ('user', )


2. Вторым пунктом там предлагается что-то изменить в urlconf, я так и не понял о чем речь. У себя ничего не менял :)

3. Начало шаблона выглядит так:
{% extends "site_wrapper.html" %}
{% load adminmedia %}

{% block add_head %}
<script type="text/javascript">
    window.__admin_media_prefix__ = "{% filter escapejs %}{% admin_media_prefix %}{% endfilter %}";
</script>
<script type="text/javascript" src="/admin/jsi18n/"></script>
<script type="text/javascript" src="{% admin_media_prefix %}js/core.js"></script>

<link rel="stylesheet" type="text/css" href="{% admin_media_prefix %}css/forms.css"/>
<link rel="stylesheet" type="text/css" href="{% admin_media_prefix %}css/base.css"/>
<link rel="stylesheet" type="text/css" href="{% admin_media_prefix %}css/widgets.css"/>
{% endblock %}

4. Непосредственно перед формой вставляем:
{{ form.media }}

4. В urls.py добавил (ВЫШЕ r'^admin/' !!!):
(r'^admin/jsi18n', 'django.views.i18n.javascript_catalog'),

Без этого виджет будет доступен только пользователям с правами админа.

В результате получился такой симпатичный виджет