当我转到“http://127.0.0.1:8000/restaurant/sign-in/”时,我收到页面未找到(404)错误。但我可以通过“http://127.0.0.1:8000/restaurant/$”访问主页。
我也尝试过“http://127.0.0.1:8000/restaurant/sign-in/ $”,但这也给了我错误(init() 接受 1 个位置参数,但给出了 2 个)。
我的 urls.py 是
from django.contrib import admin
from django.urls import path
from foodtaskerapp import views
from django.contrib.auth import views as auth_views
urlpatterns = [
path('admin/', admin.site.urls),
path('', views.home, name='home'),
path('restaurant/sign-in/$', auth_views.LoginView,
{'template_name': 'restaurant/sign_in.html'},
name='restaurant-sign-in'),
path('restaurant/sign-out', auth_views.LogoutView,
{'next_page': '/'},
name='restaurant-sign-out'),
path('restaurant/$', views.restaurant_home, name='restaurant-
home'),
]
我的views.py是
from django.shortcuts import render, redirect
def home(request):
return redirect(restaurant_home)
def restaurant_home(request):
return render(request, 'restaurant/home.html', {})
here is the screenshot of the error
我也有
<body>
<form method="POST">
{% csrf_token %}
{{ form }}
<button type="submit">Sign In</button>
</form>
</body>
在sign_in.html中,但表单未显示,仅显示登录。 only sign is shown but not the form
最佳答案
您正在使用的函数的语法在最新版本的 django 中已更改,这就是您收到该错误的原因(您共享的代码位于 code4startups 制作的教程中,该教程使用旧版本的 django)。 您应该将路径命令修改为:
path('restaurant/sign-in/', auth_views.LoginView.as_view(
template_name='restaurant/sign_in.html'),
name='restaurant-sign-in'),
关于python - 转到 "http://127.0.0.1:8000/restaurant/sign-in/"页面时出现页面未找到 (404) 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55989109/