Reputation: 83
I am trying to create blog app with django.I created registration form with django forms.In official django documentation for get request the code is form.classname().I also coded in that way.But its returning register() missing 1 required positional argument: 'request'?
from django import forms
class register(forms.Form):
Email = forms.EmailField(required=True)
Username = forms.CharField(label='Username',
max_length=100,required=True)
Password = forms.CharField(widget=forms.PasswordInput(),required=True)
Confirm_Password =
forms.CharField(widget=forms.PasswordInput(),required=True)
views.py
def register(request):
if request.method == "POST":
form = register(request.POST)
email = form.cleaned_data['email']
User_name=form.cleaned_data['User_name']
Password1=form.cleaned_data['Password1']
Password2=form.cleaned_data['Password2']
if form.is_valid():
if User.objects.filter(username=User_name).exists():
messages.info(request,'Username Taken')
return redirect('register')
elif User.objects.filter(email=email).exists():
messages.info(request,'Email Taken')
return redirect('register')
else:
user = User.objects.create_user(username=User_name,
password=Password1,email=email)
user.save();
return redirect('/')
else:
messages.info(request,'Password Not Matching')
else:
form = register()
return render(request,'register.html',{'form': form})
models.py
from django.db import models
from django.conf import settings
# Create your models here.
class Post(models.Model):
title=models.CharField(max_length=100)
desc=models.TextField()
date=models.DateField(auto_now=True)
author=models.ForeignKey(settings.AUTH_USER_MODEL,
to_field="username",on_delete=models.CASCADE)
Showing error:register() missing 1 required positional argument: 'request'
Upvotes: 0
Views: 85
Reputation: 450
The problem is that your form name is the same as view name. Change name of form to something different.
I also noticed other mistakes:
if form.is_valid():
field1 = form.cleaned_data["field1"]
form.cleaned_data["someFieldName"]
Upvotes: 1