我正在尝试构建自己的自定义 django 表单小部件(将它们放在我的项目目录的 widgets.py 中)。值“value_from_datadict()”应该返回什么?它是返回一个字符串还是该字段的实际预期值?
我正在使用 JQuery 对象构建我自己的拆分日期/时间小部件版本,小部件的每个部分应该返回什么?日期小部件是否应该返回一个日期时间,而时间小部件是否应该返回一个日期时间?什么胶水代码将这两个值合并在一起?
我正在尝试构建自己的自定义 django 表单小部件(将它们放在我的项目目录的 widgets.py 中)。值“value_from_datadict()”应该返回什么?它是返回一个字符串还是该字段的实际预期值?
我正在使用 JQuery 对象构建我自己的拆分日期/时间小部件版本,小部件的每个部分应该返回什么?日期小部件是否应该返回一个日期时间,而时间小部件是否应该返回一个日期时间?什么胶水代码将这两个值合并在一起?
因为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))
Django 消息来源说
给定一个数据字典和这个小部件的名称,返回这个小部件的值。如果未提供,则返回 None。
阅读代码,我看到 Django 的单独日期和时间小部件都是 Input 的子类,Widget 的子类,它似乎与简单的字符串一起工作。