【问题标题】:conversion from django 1.4 to 1.5 errors从 django 1.4 到 1.5 的转换错误
【发布时间】:2013-06-23 11:37:32
【问题描述】:

我做的完全一样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 或更高版本中已弃用,因此我将其替换为静态媒体选项,这是新代码:

{% 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">

它看起来像这样:

我的日历图标不见了。谁能告诉我 1.5 版中这个问题的替代方案是什么

我们将不胜感激

【问题讨论】:

  • Django admin 静态媒体的位置已从django/contrib/admin/media/ 移动到django/contrib/admin/static/admin/。您需要删除{% adminmedia %}。标签。现在,/admin` 只是/static/ 的子目录
  • 那我们该怎么办。请提供正确的答案,以便我接受。
  • 试试ADMIN_MEDIA_PREFIX='/static/'
  • 我会做两件事:1. 将django.contrib.staticfiles 添加到INSTALLED_APPS,然后将STATIC_URL 设置为/static/ - 关于ADMIN_MEDIA_PREFIX 是错误的
  • 它已经完成了。我的设置文件包含所有这些信息。

标签: django django-templates django-media


【解决方案1】:

回复就在此处,在 1.5 发行说明中:https://docs.djangoproject.com/en/dev/releases/1.5-beta-1/#miscellaneous

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

【讨论】:

  • 是的,我知道已弃用的问题。这就是我寻找替代品的原因。如果你知道的话,请告诉我。
  • 是的,我现在想起来了。从 1.3 开始,每个管理媒体都可以通过 static 标签获得。您只需将{% admin_media_prefix %}/your/file.css 替换为{% static "admin/your/file.css" %}。更多信息也在这里:stackoverflow.com/a/13627047/1433392 :)
  • 我仍然看到 {% load adminmedia %}(第 1 行)和 {% admin_media_prefix %}(结束前 4 行)...
【解决方案2】:

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

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

【讨论】:

    【解决方案3】:

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

    1. 将 site-packages/django/contrib/admin/static/admin/* 复制到我的 Django 项目的静态目录中,就像
    最佳/ 静止的/ 行政/ css/ js 图片
    1. 编辑 urls.py,在 urlpatterns = patterns('',...

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

    就是这样。它奏效了。

    【讨论】:

      猜你喜欢
      • 2013-04-01
      • 2013-04-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-25
      相关资源
      最近更新 更多