django - 找不到 Django 2.0 页面,url 模式不匹配
问题描述
我刚刚将我的 django 项目从 1.8.5 升级到 2.0.6 版本。我可以进入索引页面,但任何其他链接都会给我一个 404 页面。在此处输入图像描述。有什么问题?非常感谢事先。
这是我的 urls.py 的一部分
from django.conf.urls import *
from django.contrib import admin
from django.contrib.admin.views.decorators import staff_member_required
from . import views
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^historicalbackground/', views.historicalbackground, name="historicalbackground"),
url(r'^organizations/$', views.organizations, name="Organizations page"),
]
这是views.py
from django.views.generic.base import TemplateView
from django.http import HttpResponse, Http404, HttpResponseRedirect
from django.template import RequestContext, loader, Context
from django.template.loader import get_template
from django.shortcuts import render, render_to_response, redirect
from django.core import management, serializers
from .models import Person, Place, Org, Relationship, Page, Manuscript, PendingTranscription
from html.parser import HTMLParser
from tempfile import *
from .forms import ContactForm, ImportXMLForm, TranscribeForm
from django.core.mail import EmailMessage, send_mail
from django.views.generic import ListView, DetailView
from django.urls import reverse
def historicalbackground (request):
return render(request, 'historicalbackground.html')
def organizations(request):
return render(request, 'organizations.html')
解决方案
您可能尚未更改MIDDLEWARE_CLASSES
为MIDDLEWARE
,因此从/historicalbackground
to的重定向/historicalbackground/
不起作用。有关更多信息,请参阅此答案。
从 Django 1.8.x 到 2.0.x 的跳跃太大了。你错过了所有的弃用警告,所以你会得到这样的奇怪行为。让您的项目在没有弃用警告的情况下在 Django 1.11.x 上运行,那么升级到 Django 2.0 会更加顺畅。
推荐阅读
- c++ - 标准在哪里指定在类中定义的函数是内联的?
- android - android studio上的响应代码400,但与POSTMAN一起工作正常
- python-2.7 - 如何使用带有 Python 的 MessageBoxExW 更改 MB_OKCANCEL 按钮文本(Windows API)中的语言?
- arrays - 在排序数组中查找百分位数
- php - 在回显表格时从数组中获取每 7 个元素
- node.js - 如何在 docker-compose 中创建两个服务之间的连接,以便它们可以相互 ping?
- groovy - Groovy 不会推断方法的返回类型
- javascript - Javascript 在数据表的第二页中不起作用
- javascript - 用 Jest、未知的 getter 模拟 vuex
- r - R 模糊加入最近的先前记录