课程设计(企业仓储管理系统)
前端login_home.html
{% extends "adminuser/bg.html" %}
<html lang="en">
{% block logincontainer %}
<meta charset="UTF-8">
<div class="login-kind admin-login-button">
<a href="{% url "login" "Administrator" %}">仓储管理人员登录</a>
</div>
<div class="login-kind admin-register-button">
<a href="{% url "register" "Administrator" %}">仓储管理人员注册</a>
</div>
{% endblock %}
前端login_detail.html
{#{% extends "adminuser/bg.html" %}#}
<meta charset="UTF-8">
<html lang="en">
{% load static %}
<head>
<link href="{% static 'css/login.css' %}" rel="stylesheet">
</head>
{% block welcome_message %}
{% if from_url == "register" %}
<div class="welcome-message">注册成功,你的{% if kind == "Administrator" %}编号{% else %}账号{% endif %}是 {{ uid }}</div>
{% else %}
<div class="welcome-message">欢迎</div>
{% endif %}
{% endblock %}
{% block login_container %}
{% if kind == "Administrator" %}
<div class="login-kind-title">我是仓管</div>
{% else %}
<div class="login-kind-title">我是经理</div>
{% endif %}
<div class="login-container">
<div class="login-title">登录</div>
<form method="post">
{% csrf_token %}
{{form.as_p}}
<div class="submit-button">
<input type="submit" value="登录"/>
<a href="{% url 'register' kind%}">注册</a>
</div>
</form>
<div class="return-button"><a href="{% url 'login' %}">返回上一页</a></div>
</div>
{% endblock %}
form.py
class AdminLoginForm(forms.Form):
uid = forms.CharField(label='工号', max_length=10)
password = forms.CharField(label='密码', max_length=30, widget=forms.PasswordInput)
class ManageLoginForm(forms.Form):
uid = forms.CharField(label='经理编号', max_length=10)
password = forms.CharField(label='密码', max_length=30, widget=forms.PasswordInput)
class AdminRegisterForm(forms.ModelForm):
confirm_password = forms.CharField(widget=forms.PasswordInput, label="确认密码")
class Meta:
model = Administrator
fields = (
'admin_name',
'admin_password',
'confirm_password',
'admin_gender',
'admin_telephone',
'admin_warehouse',
)
def clean(self):
cleaned_data = super(AdminRegisterForm, self).clean()
password = cleaned_data.get('password')
confirm_password = cleaned_data.get('confirm_password')
# if confirm_password != password:
# self.add_error('confirm_password', 'Password does not match.')
return cleaned_data
class AdminUpdateForm(AdminRegisterForm):
class Meta:
model = Administrator
fields = ('admin_name',
'admin_password',
'confirm_password',
'admin_gender',
'admin_telephone',
'admin_warehouse')
class ManageRegisterForm(forms.ModelForm):
confirm_password = forms.CharField(widget=forms.PasswordInput, label="确认密码")
class Meta:
model = Manager
fields = ('manager_name',
'manager_password',
'confirm_password',
'manager_gender',
'manager_pw',
'manager_email',
'manager_telephone')
def clean(self):
cleaned_data = super(ManageRegisterForm, self).clean()
password = cleaned_data.get('password')
confirm_password = cleaned_data.get('confirm_password')
# if confirm_password != password:
# self.add_error('confirm_password', 'Password does not match.')
return cleaned_data
views.py
def login(request, *args, **kwargs):
if not kwargs or "kind" not in kwargs or kwargs["kind"] not in ["Administrator", "Manager"]:
return HttpResponse(INVALID_KIND)
kind = kwargs["kind"]
if request.method == 'POST':
if kind == "Manager":
form = ManageLoginForm(data=request.POST)
else:
form = AdminLoginForm(data=request.POST)
#
# if form.is_valid():
# uid = form.cleaned_data["uid"]
# temp_res = "hello, %s" % uid
# return HttpResponse(temp_res)
# else:
# context = {'kind': kind}
# if kind == "Manager":
# form = ManageLoginForm()
# else:
# form = AdminLoginForm()
#
# context['form'] = form
if form.is_valid():
uid = form.cleaned_data["uid"]
if len(uid) != 10:
form.add_error("uid", "账号长度必须为10")
else:
if kind == "Manager":
manager_id = uid[:4]
object_set = Manager.objects.filter(manager_id=manager_id)
else:
admin_id = uid[3:]
admin_warehouse = uid[:3]
object_set = Administrator.objects.filter(admin_warehouse=admin_warehouse, admin_id=admin_id)
if object_set.count() == 0:
form.add_error("uid", "该账号不存在.")
else:
user = object_set[0]
if form.cleaned_data["password"] != user.password:
form.add_error("password", "密码不正确.")
else:
request.session['kind'] = kind
request.session['user'] = uid
request.session['id'] = user.id
# successful login
to_url = reverse("course", kwargs={'kind': kind})
return redirect(to_url)
return render(request, 'adminuser/login_detail.html', {'form': form, 'kind': kind})
else:
context = {'kind': kind}
if request.GET.get('uid'):
uid = request.GET.get('uid')
context['uid'] = uid
if kind == "Manager":
form = ManageLoginForm({"uid": uid, 'password': '12345678'})
else:
form = AdminLoginForm({"uid": uid, 'password': '12345678'})
else:
if kind == "Manager":
form = ManageLoginForm()
else:
form = AdminLoginForm()
context['form'] = form
if request.GET.get('from_url'):
context['from_url'] = request.GET.get('from_url')
return render(request, 'adminuser/login_detail.html', context)
def logout(request):
if request.session.get("kind", ""):
del request.session["kind"]
if request.session.get("user", ""):
del request.session["user"]
if request.session.get("id", ""):
del request.session["id"]
return redirect(reverse("login"))
#
#
文件结构
结果
但登录显示账号不存在