【问题标题】:The current path, auth/, didn't match any of these当前路径 auth/ 与其中任何一个都不匹配
【发布时间】:2020-04-18 08:07:37
【问题描述】:

我正在尝试在我的项目中设置 url 调度程序。我有以下结构的项目

forecast
|___ forecast
|_______ __init__.py
|_______ settings.py
|_______ urls.py
|_______ wsgi.py
|____authorization
|_______ apps.py
|_______ urls.py
|_______ models.py
|_______ views.py
|___ templates
|_______ registration
|____________ login.html

在我的forecast/urls.py 我把逻辑放在了

from django.contrib import admin
from django.urls import path,include                                                                                     
urlpatterns = [
     path('admin/', admin.site.urls),
     path('',include('main.urls')),
     path('auth',
     include('authorization.urls')),
 ]

我的问题的要点是path('auth',include('authorization.urls')) 我包括来自 authorization/ 的 urls.py 并且在这个 urls.py 中我想将所有逻辑用于我的项目的授权,例如 login 页面 注册页面reset_password页面我在authorization/urls.py中有以下代码

from django.urls import path
from . import views
      urlpatterns =[
            path('registration',
            views.registration_form),                
            path('login',
            views.login_name), 
      ]

我的registration_form视图是

from django.shortcuts import render
         def registration_form(request):
             return
             render(request,'registration/login.html',{})

为了在前端输出我的逻辑,我在我的项目templates 目录中创建了它,在它里面registration 目录和里面我放了login.html 文件。在 settings.py 我有

INSTALLED_APPS = [ 
    'django.contrib.admin',                                       
    'django.contrib.auth',                                     
    'django.contrib.contenttypes',                                
    'django.contrib.sessions',                                 
    'django.contrib.messages',                                 
    'django.contrib.staticfiles',                                 
    'dataflow',                                                    
    'authorization',                                           
    'main',                                                      
    'django.contrib.postgres',
 ]
  TEMPLATES = [{
    'DIRS':         
   [os.path.join(BASE_DIR,'templates')],
 }]

。比在运行服务器并打开 http://127.0.0.1:8000/auth/registration 但 django 出现 page not found 异常之后。谁能指导我在哪里发生错误???

【问题讨论】:

  • “main.urls”中有什么?
  • @IainShelvington 这是我主页的另一个应用程序
  • main.urls 的包含位于授权 URL 的包含之前。在解析器访问您的网址之前,其中可能有一些东西正在解析为 404
  • @IainShelvington 将main/urls.py 替换为authorization/urls.py 时出现同样的错误
  • 标题中的实际错误是没有路径“auth/”,你在那里被重定向了吗?可以分享views.registration_form吗?

标签: django python-3.x django-urls


【解决方案1】:

您确定在您的settings.py 中包含此片段吗?

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    ...
    'authorization.apps.AuthorizationConfig',  // add this manually
]

关键是,无论何时创建应用程序,Django 都不会自动将其注册为框架的一部分。

【讨论】:

  • 对不起,我有 apps.py 文件,我没有包含在我描述的项目结构中。我在想这没必要
  • 添加到INSTALLED_APPS 后,这项工作有效吗?只是问
  • 它已添加到 installed_apps 我用 settings.py 数据更新文件以便更好地理解
猜你喜欢
  • 2020-11-22
  • 1970-01-01
  • 2020-01-02
  • 1970-01-01
  • 1970-01-01
  • 2019-05-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多