我試圖建立自己的自定義Django表單小部件(把它們放在我的項目目錄的widgets.py中)。值「value_from_datadict()」應該返回什麼值?它是返回一個字符串還是字段的實際期望值?自定義窗體小部件的「value_from_datadict」方法應該返回什麼?
我正在使用JQuery對象構建我自己的版本的分割日期/時間窗口小部件,窗口小部件的每個部分應該返回什麼?日期小部件應該返回日期時間並且時間小部件返回日期時間?什麼粘合代碼將兩個值合併在一起?
我試圖建立自己的自定義Django表單小部件(把它們放在我的項目目錄的widgets.py中)。值「value_from_datadict()」應該返回什麼值?它是返回一個字符串還是字段的實際期望值?自定義窗體小部件的「value_from_datadict」方法應該返回什麼?
我正在使用JQuery對象構建我自己的版本的分割日期/時間窗口小部件,窗口小部件的每個部分應該返回什麼?日期小部件應該返回日期時間並且時間小部件返回日期時間?什麼粘合代碼將兩個值合併在一起?
對於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))
Django的消息來源說
給出一個 字典數據和這個小部件的 名,返回此 小部件的值。如果不是 ,則返回None。
閱讀代碼,我看到Django的單獨日期和時間窗口小部件都是Widget的Input子類的子類,它似乎適用於簡單的字符串。