【问题标题】:hello_world() missing 1 required positional argument: 'request'hello_world() 缺少 1 个必需的位置参数:“请求”
【发布时间】:2018-12-01 07:58:23
【问题描述】:

请协助找出解决此错误的方法。

courses/views.py

   from django.http import HttpResponse
from django.shortcuts import render

from .models import Course

def course_list(request):
    courses = Course.objects.all()
    return render(request, 'courses/course_list.html',{'courses':courses})

admin/views.py

from django.shortcuts import render

def hello_world(request):
    return render(request, 'home.html')

管理 urls.py

from django.contrib import admin
from django.urls import path
from courses import views
from django.conf.urls import include
from . import views

urlpatterns = [
    path('admin/', admin.site.urls),
    path('admin/', views.hello_world()),
    path('courses/', include('courses.urls')),
    path('courses/', views.course_list(), name='listofcourses'),
]

课程/urls.py

from django.urls import path
from . import views

urlpatterns=[
path('',views.course_list, name="listofcourses"),
]

现在在运行的服务器上,我收到了这个错误

hello_world() 缺少 1 个必需的位置参数:'request'

我希望在 127.0.0.1:8000 的运行服务器上发布主页,在 127.0.0.1:8000/courses 上发布课程页面

提前谢谢你

【问题讨论】:

  • views.hello_world() 替换为views.hello_world。您需要将视图函数本身传递给 URL 配置,而不是函数的结果。另请注意,您使用了与上述定义相同的 URL 路径 admin/,因此永远不会到达您的路径,因为它上面的路径将首先匹配。
  • 试过views.hello_world它给出了另一个错误模块'learning_site.views'没有属性'course_list'

标签: python django django-2.0


【解决方案1】:

您正在调用(执行)urls 中的视图,这是不应该的。你可以这样做:

path('hello-world/', views.hello_world),   # don't use 'admin/' because you already have url configured against this path.

【讨论】:

  • 试过path('hello_world/, views.hello_world)它给出了另一个错误模块'learning_site.views'没有属性'course_list' “course_list”实际上是一个属性courses.views
  • 我认为它与管理员网址中的path('courses/', views.course_list(), name='listofcourses'), 有关。删除此行并重试。
  • 试过了。主页现在不可见。在127.0.0.1:8000 它给出了 PAGE NOT FOUND 错误,但是当我尝试127.0.0.1:8000/courses 它给出了所需的输出时,错误仅在这行代码中,但我现在如何根据所需的输出显示主页?
  • 好吧,因为您还没有为路径/ 配置任何视图。如果你这样做,你会看到一个page127.0.0.1:8000。另外,如果这个答案对你有帮助,please mark it accepted。谢谢。
  • 整理好了。谢谢@ruddra
猜你喜欢
  • 1970-01-01
  • 2021-08-12
  • 2018-01-24
  • 2020-05-07
  • 2018-12-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-07-12
相关资源
最近更新 更多