所以,我想使用名为datepicker的JS库作为表单中日期字段的模板。
我的自定义小部件代码只是呈现模板:
class MyDateWidget(SelectDateWidget):
def render(self, name, value, attrs=None):
template = loader.get_template('date_widget.html')
return template.render(Context({}))
和 date_widget.html 包含以下内容
<div class="input-append date" id="dp-input1" data-date-format="dd-mm-yyyy">
<input class="span12" size="16" type="text" value="12-02-2012" readonly="">
<span class="add-on"><i class="icon-calendar" onclick="$('#dp-input1').datepicker();"></i></span>
</div>
这个html有点好,我可以在我的页面中看到漂亮的popup datepicker菜单,但由于某种原因request.POST
(此表单发布,是)并不包含选择的日期。其他字段显示在POST数据中。
显然我的小部件错过了一些重要的“后端”逻辑。
答案 0 :(得分:0)
虽然这个问题很老,但我认为你必须将name属性添加到输入标记:
class MyDateWidget(SelectDateWidget):
def render(self, name, value, attrs=None):
template = loader.get_template('date_widget.html')
return template.render(Context({'name': name}))
和
<div class="input-append date" id="dp-input1" data-date-format="dd-mm-yyyy">
<input class="span12" size="16" type="text" name="{{ name }}" value="12-02-2012" readonly="">
<span class="add-on"><i class="icon-calendar" onclick="$('#dp-input1').datepicker();"></i></span>
</div>