django-admin-bootstrapped 弄乱了 DateField、TimeField 和 PointField
django-admin-bootstrapped messing with DateField, TimeField and PointField
我刚刚将 django-admin-bootstrapped 添加到我的项目中。几乎一切都很好。
实际上有两个小错误我想知道如何解决。
第一个是关于 DateField 和 TimeField:当我在 django-admin-bootstrapped 下时,没有 date/time 选择器。当我检查源代码时,没有关于这两个选择器的生成源代码。当我停用 django-admin-bootstrapped 时,这里缺少的是:
Next to the DateField :
<span class="datetimeshortcuts">
<a href="javascript:DateTimeShortcuts.handleCalendarQuickLink(0, 0);">Today</a> |
<a href="javascript:DateTimeShortcuts.openCalendar(0);"
id="calendarlink0"><img src="/static/admin/img/icon_calendar.gif" alt="Calendar">
</a></span>
Next to the TimeField :
<span class="datetimeshortcuts">
<a href="javascript:DateTimeShortcuts.handleClockQuicklink(1, -1);">Now</a> |
<a href="javascript:DateTimeShortcuts.openClock(1);"
id="clocklink1"><img src="/static/admin/img/icon_clock.gif" alt="Clock">
</a></span>
第二个是关于 PointField(我正在使用 postGis),没有 django-admin-bootstrapped,我的领域很好,但是当它被引导时,我在 OpenLayer.js 上有一个错误:
OpenLayers.js:679 Uncaught TypeError: Cannot read property 'w' of null
所以,两个问题(使用 django 1.8 和 django-admin-bootstrapped):
1- How to recover a date/time picker in the admin interface ?
2- How to recover my PointField map picker in the admin interface ?
谢谢大家。 (这里是 github 上的相同问题 (1):https://github.com/django-admin-bootstrapped/django-admin-bootstrapped/issues/168 但只有外部解决方法(我更喜欢本地解决方法))
编辑:来自我的网站包:./django/contrib/gis/admin/options.py
我已经直接将呼叫 OpenLayer.js 的线路更改为 OpenLayer.debug.js 以向您提供更多信息。
In OpenLayer.debug.js line 40008 is the source of the error :
setMap: function(map) {
OpenLayers.Layer.prototype.setMap.apply(this, arguments);
if (!this.renderer) {
this.map.removeLayer(this);
} else {
this.renderer.map = this.map;
var newSize = this.map.getSize();
40008-> newSize.w = newSize.w * this.ratio;
newSize.h = newSize.h * this.ratio;
this.renderer.setSize(newSize);
}
},
这里是 OpenLayer.debug.js + GeoDjango 索引的整个 JS 回溯:
未捕获类型错误:无法读取 属性 'w' of null ==> OpenLayers.debug.js:40008
newSize.w = newSize.w * this.ratio;
OpenLayers.Layer.Vector.OpenLayers.Class.setMap ==> OpenLayers.debug.js:8349
layer.setMap(this);
OpenLayers.Map.OpenLayers.Class.addLayer ==> (索引):614
geodjango_gps_point.map.addLayer(geodjango_gps_point.layers.vector);
geodjango_gps_point.init ==> (索引):677 (匿名函数)
<script type="text/javascript">geodjango_gps_point.init();</script>
描述了两个问题,很抱歉造成了不便。所以这里有一些答案:
1 - The DateField and Timefield seems to be issued and this will be fix :
Fix 168 (last update 3 days ago)
2 - My PointField show up correctly after adding this options to settings.py :
DAB_FIELD_RENDERER = 'django_admin_bootstrapped.renderers.BootstrapFieldRenderer'
谢谢大家
我刚刚将 django-admin-bootstrapped 添加到我的项目中。几乎一切都很好。 实际上有两个小错误我想知道如何解决。 第一个是关于 DateField 和 TimeField:当我在 django-admin-bootstrapped 下时,没有 date/time 选择器。当我检查源代码时,没有关于这两个选择器的生成源代码。当我停用 django-admin-bootstrapped 时,这里缺少的是:
Next to the DateField :
<span class="datetimeshortcuts">
<a href="javascript:DateTimeShortcuts.handleCalendarQuickLink(0, 0);">Today</a> |
<a href="javascript:DateTimeShortcuts.openCalendar(0);"
id="calendarlink0"><img src="/static/admin/img/icon_calendar.gif" alt="Calendar">
</a></span>
Next to the TimeField :
<span class="datetimeshortcuts">
<a href="javascript:DateTimeShortcuts.handleClockQuicklink(1, -1);">Now</a> |
<a href="javascript:DateTimeShortcuts.openClock(1);"
id="clocklink1"><img src="/static/admin/img/icon_clock.gif" alt="Clock">
</a></span>
第二个是关于 PointField(我正在使用 postGis),没有 django-admin-bootstrapped,我的领域很好,但是当它被引导时,我在 OpenLayer.js 上有一个错误:
OpenLayers.js:679 Uncaught TypeError: Cannot read property 'w' of null
所以,两个问题(使用 django 1.8 和 django-admin-bootstrapped):
1- How to recover a date/time picker in the admin interface ? 2- How to recover my PointField map picker in the admin interface ?
谢谢大家。 (这里是 github 上的相同问题 (1):https://github.com/django-admin-bootstrapped/django-admin-bootstrapped/issues/168 但只有外部解决方法(我更喜欢本地解决方法))
编辑:来自我的网站包:./django/contrib/gis/admin/options.py 我已经直接将呼叫 OpenLayer.js 的线路更改为 OpenLayer.debug.js 以向您提供更多信息。
In OpenLayer.debug.js line 40008 is the source of the error :
setMap: function(map) {
OpenLayers.Layer.prototype.setMap.apply(this, arguments);
if (!this.renderer) {
this.map.removeLayer(this);
} else {
this.renderer.map = this.map;
var newSize = this.map.getSize();
40008-> newSize.w = newSize.w * this.ratio;
newSize.h = newSize.h * this.ratio;
this.renderer.setSize(newSize);
}
},
这里是 OpenLayer.debug.js + GeoDjango 索引的整个 JS 回溯:
未捕获类型错误:无法读取 属性 'w' of null ==> OpenLayers.debug.js:40008
newSize.w = newSize.w * this.ratio;
OpenLayers.Layer.Vector.OpenLayers.Class.setMap ==> OpenLayers.debug.js:8349
layer.setMap(this);
OpenLayers.Map.OpenLayers.Class.addLayer ==> (索引):614
geodjango_gps_point.map.addLayer(geodjango_gps_point.layers.vector);
geodjango_gps_point.init ==> (索引):677 (匿名函数)
<script type="text/javascript">geodjango_gps_point.init();</script>
描述了两个问题,很抱歉造成了不便。所以这里有一些答案:
1 - The DateField and Timefield seems to be issued and this will be fix :
Fix 168 (last update 3 days ago)
2 - My PointField show up correctly after adding this options to settings.py :
DAB_FIELD_RENDERER = 'django_admin_bootstrapped.renderers.BootstrapFieldRenderer'
谢谢大家