I am a laravel developer and I am new to django. Everything went well in django until I started exploring forms. I want to use plain HTML forms and validate it using django forms validation but I am not getting proper reference or tutorial for doing so.
I want some examples or help for validating plain HTML form fields in django.
Following are the snippets of my code:
Template:
<form action="{% url 'user.create' %}" method="post">
{% csrf_token %}
<div class="row">
<div class="input-field col s6">
<input id="user_name" name="user_name" type="text">
<label for="user_name">Username</label>
</div>
<div class="input-field col s6">
<input id="password" name="password" type="password">
<label for="password">Password</label>
</div>
</div>
<div class="row">
<div class="input-field col s6">
<input id="email" name="email" type="email">
<label for="email">Email</label>
</div>
<div class="input-field col s6">
<input id="phone" name="phone" type="text">
<label for="phone">Phone</label>
</div>
</div>
<input class="waves-effect waves-light btn blue darken-2" type="submit" value="Register" />
</form>
View:
def createUser(request):
form = RegisterUser(request.POST)
if form.is_valid():
user = User(user_name = form.cleaned_data['user_name'],
password = form.cleaned_data['password'],
email = form.cleaned_data['email'],
phone = form.cleaned_data['phone'],)
user.save()
return redirect("index")
else:
return messages.error(request, "Invalid data")
Form:
class RegisterUser(forms.Form):
user_name = forms.CharField(max_length=50)
password = forms.CharField(max_length = 50)
email = forms.CharField(max_length = 50)
phone = forms.CharField(max_length = 50)
I think you are trying to create user using default User Model. If you want to render form with the errors after validation fails I think it is necessary to pass form as context to render method so that template can re-render with error datas. Then you can access errors as form.errors
for all field errors, form.non_field_errors
for all non field errors or form.fieldname.errors
for particular field errors eg: form.user_name.errors
.
def create_user(request):
form = RegisterUser(request.POST)
if form.is_valid():
# user = User(user_name = form.cleaned_data['user_name'],
user_name = form.cleaned_data['user_name'
password = form.cleaned_data['password'],
email = form.cleaned_data['email'],
phone = form.cleaned_data['phone'],)
user = User.create(username, email)
user.set_password(password)
user.save()
return redirect("index")
else:
messages.error(request, "Invalid data")
return render(request, 'your_form.html', {'form': form})
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.