部署了rest-framework的django时出错

时间:2015-07-25 08:35:42

标签: python django django-rest-framework

我在尝试打开Django Rest框架的url时遇到错误。 它本地工作正常,但当我在服务器上部署它时,我有以下错误。在服务器上我有django 1.9。

Exception Value:    

'url' is not a valid tag or filter in tag library 'future'

Exception Location:     /home/maxo/django-trunk/django/template/base.py in parse, line 506

Error during template rendering

In template /usr/local/lib/python2.7/dist-packages/rest_framework/templates/rest_framework/base.html, error at line 1

'url' is not a valid tag or filter in tag library 'future'
1   

      {% load url from future %}



2   {% load staticfiles %}
3   {% load rest_framework %}
4   <!DOCTYPE html>
5   <html>
6       <head>
7           {% block head %}
8   
9               {% block meta %}
10                  <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
11                  <meta name="robots" content="NONE,NOARCHIVE" />

注意:当我删除以下行时: 来自base.html的{%load url from future%} 它现在工作正常,但随后的休息api样式消失了。还有其他替代方法可以替换{%load url from future%}吗?

2 个答案:

答案 0 :(得分:4)

在Django 1.9中,url模板标记已从future模板标记库中删除。

来自Django 1.9 release notes

  

ssiurl模板标记将从future模板标记中删除   库(在1.3 / 1.4弃用期间使用)。

因此,现在您无法从Django 1.9中的url库加载future标记。您可以使用内置的url代码。

{% url 'some-url-name' %}

答案 1 :(得分:1)

您可以通过安装较新版本的djangorestframework

来解决这个问题
requirements.txt

我认为在django版本上开发并部署在其他版本上并不是一个好主意,这很可能会给你带来麻烦。 我使用virtualenv工作,并使用您正在使用的所有软件包的版本保存pip install -r requirements.txt 文件。这样,部署时可以运行:

class var keyAll: [String] {
    return [
      "title",
      "desc"
    ]
  }

  class var objectMapping: RKObjectMapping {
    let childMapping = RKObjectMapping(forClass: Category.self)
    childMapping.addAttributeMappingsFromArray(keyAll)

    let mapping = RKObjectMapping(forClass: Category.self)
    mapping.addAttributeMappingsFromArray(keyAll)

    mapping.addPropertyMapping(RKRelationshipMapping(fromKeyPath: keyChilds, toKeyPath: keyChilds, withMapping: childMapping))
    return mapping
  }

并且将安装与您在开发环境中使用的版本相同的版本。

希望这会有所帮助。 撒路