自定义表单窗口小部件的"value_from_datadict"方法应该返回什么?

Mik*_*keN 5 python django django-forms

我正在尝试构建自己的自定义django表单小部件(将它们放在我项目目录的widgets.py中)."value_from_datadict()"的值应该返回什么?是返回字符串还是字段的实际预期值?

我正在使用JQuery对象构建我自己的分割日期/时间小部件版本,小部件的每个部分应返回什么?日期窗口小部件是否应返回日期时间,时间窗口小部件是否返回日期时间?什么胶水代码将两个值合并在一起?

Jef*_*uer 5

对于value_from_datadict()你想返回你所期望的价值或无.django/forms/widgets.py中的源代码提供了一些示例.

但是你应该能够通过提供一个render方法来构建一个DatePicker小部件:

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))
Run Code Online (Sandbox Code Playgroud)