我遇到了this post中描述的问题我不知道问题的原因是什么,所以我决定在没有它的情况下在Docker中创建一个新项目。在这两种情况下我都会遇到同样的问题。对于新创建的项目,我只添加到urls.py
:
from rest_framework.documentation import include_docs_urls
API_TITLE = 'API title'
API_DESCRIPTION = '...'
urlpatterns = [
url(r'^docs/', include_docs_urls(title=API_TITLE, description=API_DESCRIPTION))
]
并在Docker requirements.txt
中添加coreapi
。如果没有Docker的项目我通过virtualenv pip3 install coreapi
安装。这就是我认为我应该做的所有事情,以获得像this site from documentation顶部的观点。显然在http://localhost:8000/docs/
然而在这两种情况下我都得到了
/ docs /
上的TemplateDoesNotExistrest_framework /文档/ index.html中
Django尝试按以下顺序加载这些模板:
使用引擎django:
django.template.loaders.app_directories.Loader:/usr/local/lib/python3.6/site-packages/django/contrib/admin/templates/rest_framework/docs/index.html(来源不存在)< / p>
django.template.loaders.app_directories.Loader:/usr/local/lib/python3.6/site-packages/django/contrib/auth/templates/rest_framework/docs/index.html(来源不存在)< / p>
(在virtualenv中只有不同的路径)
有谁知道可能出错了什么?如果需要更多详细信息,我会立即将其添加到这篇文章中,请告诉我。
更新
当我将rest_framowork
添加到INSTALLED_APPS
时,我得到:
AttributeError at /docs/
'NoneType' object has no attribute 'items'
Request Method: GET
Request URL: http://localhost:8001/docs/
Django Version: 1.11
Exception Type: AttributeError
Exception Value:
'NoneType' object has no attribute 'items'
Exception Location: /usr/local/lib/python3.6/site-packages/rest_framework/templatetags/rest_framework.py in items, line 244
Python Executable: /usr/local/bin/python3
Python Version: 3.6.1
Python Path:
['/code',
'/usr/local/lib/python36.zip',
'/usr/local/lib/python3.6',
'/usr/local/lib/python3.6/lib-dynload',
'/usr/local/lib/python3.6/site-packages']
在模板/Users/myUser/Projects/DjangoTest/lib/python3.6/site-packages/rest_framework/templates/rest_framework/docs/sidebar.html中,第8行出错
UPDATE2
我在rest_framowork
顶部的heroku INSTALLED_APPS
上的应用中,http://myapp.herokuapp.com/docs/
返回:
AttributeError at /docs/
'NoneType' object has no attribute 'items'
Request Method: GET
Request URL: http://myapp.herokuapp.com/docs/
Django Version: 1.11
Exception Type: AttributeError
Exception Value:
'NoneType' object has no attribute 'items'
Exception Location: /app/.heroku/python/lib/python3.6/site-packages/rest_framework/templatetags/rest_framework.py in items, line 244
Python Executable: /app/.heroku/python/bin/python
Python Version: 3.6.1
Python Path:
['/app/Project/backend/project',
'/app/.heroku/python/bin',
'/app',
'/app/.heroku/python/lib/python36.zip',
'/app/.heroku/python/lib/python3.6',
'/app/.heroku/python/lib/python3.6/lib-dynload',
'/app/.heroku/python/lib/python3.6/site-packages']
Server time: Mon, 17 Jul 2017 12:49:49 +0000
SOLTUION
我在requirements.txt中使用了djangorestframework==3.6.2
而不是djangorestframework==3.6.3
。我不知道版本3.6.3为什么不起作用。
答案 0 :(得分:0)
这可能意味着您没有将rest_framework
添加到INSTALLED_APPS
文件中的settings.py
。