Что должен вернуть метод value_from_datadict виджета пользовательской формы? - PullRequest
4 голосов
/ 12 января 2009

Я пытаюсь создать свои собственные пользовательские виджеты форм django (помещая их в widgets.py моего каталога проекта). Что должно возвращать значение "value_from_datadict ()"? Возвращает ли она строку или фактическое ожидаемое значение поля?

Я создаю свою собственную версию разделенного виджета даты / времени с использованием объектов JQuery, что должна возвращать каждая часть виджета? Должен ли виджет даты возвращать дату и время, а виджет времени - дату и время? Какой клейкий код объединяет два значения вместе?

Ответы [ 2 ]

5 голосов
/ 13 января 2009

Для value_from_datadict() вы хотите вернуть ожидаемое значение или Нет. Источник в django / forms / widgets.py содержит несколько примеров.

Но вы сможете создать виджет DatePicker, просто указав render метод:

DATE_FORMAT = '%m/%d/%y'

class DatePickerWidget(widgets.Widget):
    def render(self, name, value, attrs=None):
        if value is None:
            vstr = ''
        elif hasattr(value, 'strftime'):
            vstr = datetime_safe.new_datetime(value).strftime(DATE_FORMAT)
        else:
            vstr = value
        id = "id_%s" % name
        args = [
            "<input type=\"text\" value=\"%s\" name=\"%s\" id=\"%s\" />" % \
            (vstr, name, id),
            "<script type=\"text/javascript\">$(\"#%s\").datepicker({dateFormat:'mm/dd/y'});</script>" % id
            ]
        return mark_safe("\n".join(args))
0 голосов
/ 13 января 2009

Источник в Django говорит

Учитывая словарь данных и этот виджет name, возвращает значение этого виджет. Возвращает None, если это не так при условии.

Читая код, я вижу, что отдельные виджеты Django Date и Time являются подклассами Input, подклассами Widget, который работает с простыми строками.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...