Reputation: 13
I've just started my journey with django. Form is displayed on page, data typing works well, but data doesnt go to database. Form is about registation system on page.
models.py:
from django.db import models
from datetime import date
class Users(models.Model):
login = models.CharField(max_length=30)
password = models.CharField(max_length=30)
mail = models.CharField(max_length=40)
create_date = models.DateTimeField(default = date.today(), blank=True)
forms.py:
from django import forms
from .models import Users
class Register(forms.ModelForm):
password = forms.CharField(max_length=32, min_length = 8, widget=forms.PasswordInput)
login = forms.CharField(min_length=4, max_length=30)
mail = forms.EmailField()
class Meta:
model = Users
fields = ['login','password','mail']
register.html:
{% extends 'base.html' %}
{% block content %}
<div id="form-user">
<form method="POST">
{% csrf_token %}
{{ form.as_p }}
<input type="submit" value="SAVE" />
</form>
</div>
{% endblock %}
views.py:
from django.shortcuts import render
from .forms import Register
from .models import Users
def register(request):
if request.method == "POST":
form = Register(request.POST)
if form.is_valid():
form.save(commit = True)
form = Register()
form = Register()
return render(request, "register.html", {'form': form})
Upvotes: 1
Views: 879
Reputation: 137
The problem lies in your views.py.You can try:
from django.shortcuts import render,redirect
from .forms import Register
from .models import Users
def register(request):
if request.method == "POST":
form = Register(request.POST)
if form.is_valid():
form.save(commit=False)
form.save()
return redirect('/') #redirect after saving
form = Register()
return render(request, "register.html", {'form': form})
Upvotes: 1