这是我的原始代码
from django.shortcuts import render
def login(request):
if(request.method == "POST"):
return render(request, 'login1.html')
else:
return render(request, 'login.html')
已将上面的代码转换为下面的类。
class login(View):
def loginForm(self, request):
return render(request, 'login.html')
def authenticate(self, request):
return HttpResponse("Inside Post")
新的Url.py文件
from django.urls import path
from .import views
app_name = 'authapp'
urlpatterns = [
path('', views.login.loginForm(), name='loginForm'),
path('', views.login.authenticate(), name='authenticate')
]
我遇到错误
loginForm()缺少2个必需的位置参数:self和 请求。
您能建议点什么吗?我实际上是在尝试将代码转换为类。没有课,一切都很好。
答案 0 :(得分:0)
执行此操作的通常方法是在视图类上定义get
和post
方法。使用相关的请求方法时,每个方法都会被调用。
class LoginView(View):
def get(self, request, *args, **kwargs):
return render(request, 'login.html')
def post(self, request, *args, **kwargs):
return HttpResponse("Inside Post")
urlpatterns = [
path('', LoginView.as_view(), name='login'),
]