Django TemplateDoesNotExist: rest_framework

使用restframework 报错

django.template.exceptions.TemplateDoesNotExist: rest_framework/api.html

class MyAuthentication(object):
    def authenticate(self, request):
        token = request._request.GET.get('token')
        if not token:
            # 此句报错
            raise exceptions.AuthenticationFailed('用户认证失败')
        return ('alex', None)

    def authenticate_header(self, val):
        pass

报错信息如下:

 原因有两个:

  1. 在 settings.py 中注册rest_framework
    INSTALLED_APPS = [
        'django.contrib.admin',
        'django.contrib.auth',
        'django.contrib.contenttypes',
        'django.contrib.sessions',
        'django.contrib.messages',
        'django.contrib.staticfiles',
        'index',
        'rest_framework',    # 在此处注册 app
    ]

     

  2. settings.py 中的 TEMPLATES中的 APP_DIRS 设置为 True
    TEMPLATES = [
        {
            'BACKEND': 'django.template.backends.django.DjangoTemplates',
            'DIRS': [],
            'APP_DIRS': True,  # 设置为 True
            'OPTIONS': {
                'context_processors': [
                    'django.template.context_processors.debug',
                    'django.template.context_processors.request',
                    'django.contrib.auth.context_processors.auth',
                    'django.contrib.messages.context_processors.messages',
                ],
            },
        },
    ]

     

报错解决

 

  • 4
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 这个错误提示是说找不到名为 "rest_framework/api.html" 的模板文件。可能是因为你的 Django 项目中没有这个模板文件,或者模板文件的路径设置不正确。你需要检查一下你的模板文件路径设置是否正确,并且确保这个模板文件存在于正确的路径下。 ### 回答2: django.template.exceptions.templatedoesnotexist: rest_framework/api.html 是一个Django模板引擎错误。它表示Django无法找到rest_framework应用程序中的api.html模板文件。 这是因为rest_framework未在Django项目中注册或安装。该错误通常出现在使用Django REST框架的项目中,但未正确配置。 要解决此错误,需要执行以下步骤: 1. 确认已经安装了Django REST框架,并将其添加到INSTALLED_APPS列表中。你可以在settings.py文件中找到这个列表。 2. 检查settings.py文件中的TEMPLATES设置,确保Django REST框架的模板路径正确设置。 3. 如果还是无法解决问题,可以试着手动添加api.html文件到Django项目的模板目录中,并确保其路径也正确。 总之,django.template.exceptions.templatedoesnotexist: rest_framework/api.html是Django模板引擎错误,通常可以通过检查Django REST框架的注册和配置来解决。 ### 回答3: 这个错误提示是Django中常见的模板错误,它通常意味着Django无法找到特定的模板文件。其中“rest_framework/api.html”是指Rest_framework框架中的一个API模板文件。 这个错误通常是由于以下原因引起的: 1. 模板文件路径不正确。Django将自动搜索应用程序和模板目录的默认位置,并查找与视图名称匹配的模板文件。如果找不到模板文件,则会导致此错误。 2. 模板名称不正确。如果模板名称错误,Django将无法找到模板文件并引发此错误。因此,必须确保视图中使用的模板名称与模板文件名称匹配。 3. 模板文件没有在模板目录中。可能是因为模板文件被误删或移动。因此,需要确认模板文件是否存在,并且它位于正在使用的模板目录中。 解决此错误的方法是检查模板文件的路径,名称和位置。您可以在视图中使用正确的模板名称或使用特定的模板目录来指定模板位置。另外,确保模板文件存在于正确的位置并且文件名拼写正确。 总之,这个错误是一个简单的模板错误,通过仔细检查代码,可以轻松解决。一旦找到错误并纠正,Django就可以正确访问特定的API模板并返回正确的结果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值