2016-07-25 95 views
1

我目前正在使用Grappelli开发一个Django项目,并试图创建一个模仿标准更改窗体的页面。该页面不是基于任何模型,所以我只是自己添加所有字段。但是,我在使用日期选择器时遇到问题。每当我点击应该显示日历的按钮时,什么都不会发生。我相信我根本不包括重要的东西。如何正确设置附加到按钮的日期选择器

这里是我当前的代码:

{% extends "admin/change_form.html" %} 

{% block javascripts %} 
{{ block.super }} 
{% endblock %} 

{% block content %} 

    <div id="grp-content-container"> 
     <form enctype="multipart/form-data" action method="post"> 
      {% csrf_token %} 
      <div> 
       <fieldset class="module grp-module"> 
        <div class="form-row grp-row grp-cells-1 dob"> 
         <div class="field-box l-2c-fluid l-d-4"> 
          <div class="c-1"> 
           <label class="required" for="dob">Birthday</label> 
          </div> 
          <div class="c-2"> 
           <p class="datetime"> 
            <input class="vDateField hasDatepicker" type="text" id="dob" name="dob"> 
            <button id="dob-button" type="button" class="ui-datepicker-trigger"></button> 
           </p> 
          </div> 
         </div> 
        </div> 
       </fieldset> 
      </div> 
     </form> 
    </div> 
{% endblock %} 

在JavaScript的阻止,我曾试图在日期选择器源的功能添加自本网站http://jqueryui.com/datepicker/拍摄,但似乎没有任何效果。有什么建议么?

回答

0

我已经做了几次之前,并想告诉grappelli几乎开箱即用。

关注点:

grappelli.js本线:

var dateFields = $("input[class*='vDateField']:not([id*='__prefix__'])"); 
dateFields.datepicker(options); 

而且grappelli.reinitDateTimeFields函数reinits这一点。

所以基本上所有你需要做的就是把vDateField或/和vTimeField类的输入字段,并确保grappelli.js正确地加载和grappelli.initDateAndTimePicker()当文件准备好被调用。然后带有datepicker的按钮应该自动加载自己。

你可以肯定的是grappelli.initDateAndTimePicker()被称为任何其他JS文件:只要把debugger;地方在grappelli.js initDateAndTimePicker构造函数,那么就必须在你的JS-检查员暂停。

希望能帮上忙,对我有用。

+0

嘿,谢谢你的回复。如果您查看代码,我确实需要输入vDateField,日历显示为一个按钮。问题是当我点击日历时,没有任何反应。你有什么想法,为什么这是? – Written

+0

我认为你的自定义添加按钮可以与自动添加的按钮冲突。同时检查是否调用了“DateTimeShortcuts.dismissCalendar”,并关闭日历,然后才能看到它。你的检查员也有错误吗? – valignatev

+0

不,没有错误只是没有回应。当我注释掉按钮时,日历按钮消失,它应该会自动出现? – Written

相关问题