【问题标题】:django custom date_field widget by datepickerdatepicker 的 django 自定义 date_field 小部件
【发布时间】:2013-12-25 18:44:21
【问题描述】:

所以,我想使用一个名为 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 还不错,我可以在我的页面中看到漂亮的弹出日期选择器菜单,但出于某种原因request.POST(此表单发布,是的)不包含选择的日期。其他字段显示在 POST 数据中。

显然我的小部件遗漏了一些重要的“后端”逻辑。

【问题讨论】:

  • 请求不会获取值,因为输入没有name 属性..
  • 接缝正确,稍后再检查,谢谢
  • 没错,再次感谢)

标签: django datepicker django-widget


【解决方案1】:

虽然这个问题很老了,但我认为你必须在输入标签中添加 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>

【讨论】:

    猜你喜欢
    • 2014-06-24
    • 2013-04-03
    • 2019-02-27
    • 1970-01-01
    • 1970-01-01
    • 2013-11-15
    • 1970-01-01
    • 2012-01-18
    • 2012-03-28
    相关资源
    最近更新 更多