2009-01-12 45 views
4

我試圖建立自己的自定義Django表單小部件(把它們放在我的項目目錄的widgets.py中)。值「value_from_datadict()」應該返回什麼值?它是返回一個字符串還是字段的實際期望值?自定義窗體小部件的「value_from_datadict」方法應該返回什麼?

我正在使用JQuery對象構建我自己的版本的分割日期/時間窗口小部件,窗口小部件的每個部分應該返回什麼?日期小部件應該返回日期時間並且時間小部件返回日期時間?什麼粘合代碼將兩個值合併在一起?

回答

5

對於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

Django的消息來源說

給出一個 字典數據和這個小部件的 名,返回此 小部件的值。如果不是 ,則返回None。

閱讀代碼,我看到Django的單獨日期和時間窗口小部件都是Widget的Input子類的子類,它似乎適用於簡單的字符串。

相關問題