2013-12-08 110 views
0

所以,我想使用称为datepicker的JS库作为我的日期字段在窗体中的模板。django由datepicker自定义date_field小部件

我的自定义widget`s代码只是渲染一个模板:

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> 

这个网站是种好了,我可以看到漂亮的弹出datepicker菜单,但由于某种原因,request.POST(此表单帖子,是)不包含选择的日期。其他字段显示在POST数据中。

显然,我的小部件未尝试一些重要的“后端”逻辑。

+3

请求将不会拿起价值,因为没有按输入'name'属性.. – mariodev

+0

接缝正确,稍后再检查,thnx无论如何 –

+0

这是正确的,再次thanx) –

回答

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>