diff --git a/theme/templates/login.html b/theme/templates/login.html
index 431b094..cc3ff6e 100644
--- a/theme/templates/login.html
+++ b/theme/templates/login.html
@@ -8,29 +8,20 @@
Sign in to your account
-
diff --git a/zitate/forms.py b/zitate/forms.py
new file mode 100644
index 0000000..df82972
--- /dev/null
+++ b/zitate/forms.py
@@ -0,0 +1,6 @@
+from django import forms
+from django.contrib.auth.models import User
+
+class LoginForm(forms.Form):
+ username = forms.CharField(label="username", max_length=255)
+ password = forms.CharField(label="password", max_length=255, widget=forms.PasswordInput)
\ No newline at end of file
diff --git a/zitate/views.py b/zitate/views.py
index fc9e5ed..a9405ac 100644
--- a/zitate/views.py
+++ b/zitate/views.py
@@ -1,4 +1,22 @@
from django.shortcuts import render
+import django.contrib.auth as dauth
+from django.shortcuts import redirect
+
+from zitate.forms import LoginForm
+
def login(request):
- return render(request, "login.html")
\ No newline at end of file
+ if request.method == "GET":
+ return render(request, "login.html")
+ elif request.method == "POST":
+ form = LoginForm(request.POST)
+ if form.is_valid():
+ username = form.cleaned_data["username"]
+ password = form.cleaned_data["password"]
+ user = dauth.authenticate(request, username=username, password=password)
+ if user is not None:
+ dauth.login(request, user)
+ return redirect("/")
+ else:
+ form = LoginForm()
+ return render(request, "login.html", {"form": form})
\ No newline at end of file