Reputation: 221
I'm doing a django app and at first I've done methods to my view, but I'd like now to change to class.
Here's an exemple of how I tried :
def register(response):
if response.method == "POST":
form = RegisterForm(response.POST)
if form.is_valid():
form.save()
return redirect("/login")
else:
form = RegisterForm()
return render(response, "register/register.html", {"form":form})
And tried to change like this :
class RegisterView(generic.View):
def post(self, request):
form = RegisterForm(response.POST)
if form.is_valid():
form.save()
return redirect("/login")
else:
form = RegisterForm()
return render(response, "register/register.html", {"form":form})
But I keep getting a 405 Error Method not allowed, I guess it's because I'm not doing right the changing from method to class. Any idea ?
Upvotes: 0
Views: 45
Reputation: 872
You need to define the get method as well. Below is the code that must do the job
class RegisterView(generic.View):
def post(self, request):
form = RegisterForm(request.POST)
if form.is_valid():
form.save()
return redirect("/login")
else:
form = RegisterForm()
return render(request, "register/register.html", {"form":form})
def get(self, request):
form = RegisterForm()
return render(request, "register/register.html", {"form":form})
Upvotes: 2