【问题标题】:Why I am getting RecursionError?为什么我收到 RecursionError?
【发布时间】:2019-04-16 05:36:53
【问题描述】:

我希望这个博客页面能够运行。我正在使用 django==1.11.2,其中我有 2urls.py 与 include 链接,但是在运行时我遇到了递归错误问题。

主 urls.py:

from django.conf.urls import include, url
from django.contrib import admin

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^blog/', include('project1.urls')),
]

应用程序 url.py:

from django.conf.urls import url
from . import views

urlpatterns = [
    url(r'^$', views.blogIndex, name='blogindex'),
    url(r'^detail/(?P<postid>.+)$', views.blogDetail, name='blogDetail'),
]

错误:

File "/Users/shahariarshanto/Desktop/blog/env_week2/lib/python3.7/site-packages/django/core/checks/urls.py", line 26, in check_resolver
    return check_method()
  File "/Users/shahariarshanto/Desktop/blog/env_week2/lib/python3.7/site-packages/django/urls/resolvers.py", line 255, in check
    warnings.extend(check_resolver(pattern))
  File "/Users/shahariarshanto/Desktop/blog/env_week2/lib/python3.7/site-packages/django/core/checks/urls.py", line 26, in check_resolver
    return check_method()
  File "/Users/shahariarshanto/Desktop/blog/env_week2/lib/python3.7/site-packages/django/urls/resolvers.py", line 255, in check
    warnings.extend(check_resolver(pattern))
  File "/Users/shahariarshanto/Desktop/blog/env_week2/lib/python3.7/site-packages/django/core/checks/urls.py", line 26, in check_resolver
    return check_method()
  File "/Users/shahariarshanto/Desktop/blog/env_week2/lib/python3.7/site-packages/django/urls/resolvers.py", line 170, in check
    warnings = self._check_pattern_name()
RecursionError: maximum recursion depth exceeded

views.py:

from django.shortcuts import render, get_object_or_404
from .models import BlogPost

def blogIndex(request):
    blogposts = BlogPost.objects.order_by('-pub_date')
    context = {
        'heading':'The Blog',
        'subheading':'',
        'title':'Blog',
        'copyright':'Pending',
        'blogposts':blogposts,
    }
    return render(request,'blog-home-2.html',context)

def blogDetail(request,postid):
    post = get_object_or_404(BlogPost, pk=postid)
    context = {
        'post' : post,
        'copyright':'Pending',
        }
    return render(request,'blog-post.html',context)

【问题讨论】:

    标签: django recursion django-urls


    【解决方案1】:

    您将项目 URL 包含在自身中,而不是包含您的应用 URL。

    【讨论】:

    • 那么如何正确地将应用 URL 包含到项目 URL 中?
    • 如我所说。从您的主项目 urls.py 中,包含您的 app 网址,而不是再次包含项目的网址。
    猜你喜欢
    • 2021-03-21
    • 1970-01-01
    • 2017-08-17
    • 2020-09-18
    • 2012-05-27
    • 2020-03-09
    • 2020-04-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多