从django 1.4转换为1.5错误

时间:2013-06-26 10:59:14

标签: django django-templates django-media

我做的完全一样Django admin datepicker calendar and clock img 我遇到了同样的问题,但它与django 1.4工作得很好但是当我更新到django 1.5时它给了我这个错误

  

'adminmedia'不是有效的标记库:找不到模板库adminmedia,尝试过django.templatetags.adminmedia,django.contrib.staticfiles.templatetags.adminmedia,django.contrib.admin.templatetags.adminmedia,django.contrib。 humanize.templatetags.adminmedia,jobpost.templatetags.adminmedia,crispy_forms.templatetags.adminmedia,tinymce.templatetags.adminmedia,haystack.templatetags.adminmedia

这是我的代码:

{% load adminmedia %}


{% load i18n %}
{% load crispy_forms_tags %} 
{% block content %}

<meta http-equiv="Content-Language" content="en-us" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script type="text/javascript" src="/my_admin/jsi18n/"></script>
<script type="text/javascript" src="/media/admin/js/core.js"></script>
{{ form.media }}
<link rel="stylesheet" type="text/css" href="/static/admin/css/forms.css"/>
<link rel="stylesheet" type="text/css" href="/static/admin/css/base.css"/>
<link rel="stylesheet" type="text/css" href="/static/admin/css/global.css"/>
<link rel="stylesheet" type="text/css" href="/static/admin/css/widgets.css"/>

<script type="text/javascript" src="/admin/jsi18n/"></script>
<script type="text/javascript" src="/static/admin/js/core.js"></script>
<script type="text/javascript" src="/static/admin/js/admin/RelatedObjectLookups.js">      </script>
<script type="text/javascript" src="/static/admin/js/jquery.js"></script>
<script type="text/javascript" src="/static/admin/js/jquery.init.js"></script>
<script type="text/javascript" src="/static/admin/js/actions.js"></script>
<script type="text/javascript" src="/static/admin/js/calendar.js"></script>
<script type="text/javascript" src="/static/admin/js/admin/DateTimeShortcuts.js"> </script>
<script type="text/javascript">
window.__admin_media_prefix__ = "{% filter escapejs %}{% admin_media_prefix %}{%    endfilter %}";
</script>
<script type = “text/javascript” src=”../jscripts/tiny_mce/tiny_mce.js”></script> 

<script>

通过这样做,我正在显示来自/static/admin/img/icon_calender.jpg的日历小部件的图像。 但在django 1.5或更高版本中不推荐使用admin media选项,因此我将其替换为静态媒体选项,这是新代码:

{% load staticfiles %}

{% load i18n %}
{% load crispy_forms_tags %} 
{% block content %}

<meta http-equiv="Content-Language" content="en-us" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script type="text/javascript" src="/my_admin/jsi18n/"></script>
<script type="text/javascript" src="/media/admin/js/core.js"></script>
{{ form.media }}
<link rel="stylesheet" type="text/css" href="/static/admin/css/forms.css"/>
<link rel="stylesheet" type="text/css" href="/static/admin/css/base.css"/>
<link rel="stylesheet" type="text/css" href="/static/admin/css/global.css"/>
<link rel="stylesheet" type="text/css" href="/static/admin/css/widgets.css"/>
<link href="{% static 'admin/css/login.css' %}" rel="stylesheet">

它看起来像这样:

enter image description here

我的日历图标消失了。任何人都可以告诉我什么是1.5版本中这个问题的替代方案

帮助将不胜感激

3 个答案:

答案 0 :(得分:1)

响应就在这里,在1.5发行说明中:https://docs.djangoproject.com/en/dev/releases/1.5-beta-1/#miscellaneous

{% admin_media_prefix %}已弃用,您必须将其从模板中删除。 (包含每个{% load adminmedia %},导致异常)。我猜必须有一个替换此标签的设置。

答案 1 :(得分:1)

所以django 1.5给了我噩梦所以我通过使用直接jquery datpicker解决了我的问题这里是jquery datepicker

所有我必须做的就是更改django中有点棘手的ID。例如,如果您的日期字段名称是 start_date ,那么id将是 formtools_start_date 。对于这种日期选择器,你甚至不需要任何图标来显示..这对我有所帮助,我希望这对那些升级他们的django版本的人也有所帮助。

答案 2 :(得分:1)

我今天遇到了这个问题 - 无法加载admin base.css。我将我的网站的Django从v1.2升级到v1.5并遇到了问题。我发现href是/static/admin/css/base.css并且无法找到如何更改它。所以我做了这些:

  1. 将site-packages / django / contrib / admin / static / admin / *复制到我的Django项目的静态目录中,这样就像
  2.    top/
          static/
             admin/
                css/
                js
                images
    
    1. 编辑urls.py,在urlpatterns = patterns中添加以下行('',...

      (r'^ static /(?P。*)$','django.views.static.serve',{'document_root':settings.MEDIA_ROOT,'show_indexes':True}),

      < / LI>

      就是这样。它奏效了。