Вы можете использовать UserCreationForm
для этого. Например:
from django.contrib.auth.forms import UserCreationForm
from django.contrib.auth.models import User
class RegisterForm(UserCreationForm):
class Meta:
model = User
fields = ['username','password1','password2']
# you can use the username as the student roll number which is unique
views.py
def register(request):
if request.method == "POST":
form = RegisterForm(request.POST or None)
if form.is_valid():
student = form.save(commit=False)
student.save()
return redirect('redirect where you want')
else:
form = RegisterForm()
return render(request, 'register_student.html', {'form': form})
register_student.html
будет выглядеть так, но вы можете настроить эту формукак вы хотели.
<form action="" method="post" >
{% csrf_token %}
{{form.as_p}}
<input type='submit' value='submit'>
</form>
Для входа в систему вы можете сделать так:
сделать форму входа в forms.py
class LoginForm(forms.Form):
username = forms.CharField(max_length=100)
password = forms.CharField(widget=forms.PasswordInput)
в views.py
сделайте так:
def login(request):
if request.method == 'POST':
form = LoginForm(request.POST or None)
if form.is_valid():
roll_num = form.cleaned_data['username']
password = form.cleaned_data['password']
user = authenticate(request,username=username, password=password)
if user and user.is_active:
login(request, user)
messages.....
return redirect('redirect where you want')
else:
messages.error(request,'invalid credentials')
else:
form = LoginForm()
return render(request, 'login_student.html', {'form': form})
вы можете сделать login_student.html
так же, как register_student.html