为什么新创建的项目没有显示内置的API Django文档?

时间:2017-07-17 12:05:31

标签: python django python-3.x django-rest-framework

我遇到了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 /

上的TemplateDoesNotExist      

rest_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为什么不起作用。

1 个答案:

答案 0 :(得分:0)

这可能意味着您没有将rest_framework添加到INSTALLED_APPS文件中的settings.py