django多对一,三张表之间的关系
def index(request
):
user_name
= request
.session
.get
('user')
user
= User
.objects
.filter(account
=user_name
).first
()
print(user
)
if user
:
gradee
= Grade
.objects
.filter(name
=user
.user_grade
).first
()
coursee
= Course
.objects
.filter(grade
=gradee
.id).all()
print(gradee
)
else:
grade
= Grade
.objects
.all()
course
= Course
.objects
.all()
return render
(request
,'index.html',locals())
def logout(request
):
del request
.session
['user']
return redirect
('/')
def add_grade(request
):
if request
.method
== 'POST':
name
= request
.POST
.get
('name')
if not name
:
error
= '输入框不能为空!'
return render
(request
,'add_grade.html',locals())
else:
grade
= Grade
.objects
.all()
if len(grade
) >= 3:
error
= '年级添加完毕!'
return render
(request
,'add_grade.html',locals())
else:
Grade
.objects
.create
(name
=name
)
return redirect
('/')
return render
(request
,'add_grade.html')
def add_course(request
):
grade
= Grade
.objects
.all()
if request
.method
== 'POST':
name
= request
.POST
.get
('name')
gid
= request
.POST
.get
('grade')
print(gid
)
grade
= Grade
.objects
.get
(id=gid
)
if not all([name
,gid
]):
error
= '输入框不能为空!'
return render
(request
,'add_course.html',locals())
else:
course
= Course
.objects
.all().count
()
if course
>= 9:
error
= '所有课程已添加完毕!'
return render
(request
,'add_grade.html',locals())
else:
Course
.objects
.create
(name
=name
,grade
=grade
)
return redirect
('/')
return render
(request
,'add_course.html',locals())
def add_user(request
):
grade
= Grade
.objects
.all()
if request
.method
== 'POST':
name
= request
.POST
.get
('name')
account
= request
.POST
.get
('account')
password
= request
.POST
.get
('password')
user_grade
= request
.POST
.get
('grade')
if not all([name
,account
,password
,user_grade
]):
error
= '输入框不能为空!'
return render
(request
,'add_user.html',locals())
else:
User
.objects
.create
(name
=name
,account
=account
,password
=password
,user_grade
=user_grade
)
return redirect
('/')
return render
(request
,'add_user.html',locals())
def login(request
):
if request
.method
== 'POST':
account
= request
.POST
.get
('account')
password
= request
.POST
.get
('password')
if not all([account
,password
]):
error
= '输入框不能为空!'
return render
(request
,'login.html',locals())
else:
user
= User
.objects
.filter(account
=account
,password
=password
).first
()
if user
:
request
.session
['user'] = account
return redirect
('/')
else:
error
= '用户名或密码错误,请重新输入!'
return render
(request
,'login.html',locals())
return render
(request
,'login.html')
def up_grade(request
):
user_name
= request
.session
.get
('user')
user
= User
.objects
.filter(account
=user_name
).first
()
if user
:
grade_name
= user
.user_grade
print(grade_name
)
if grade_name
== '小班':
user
.user_grade
= "中班"
user
.save
()
elif grade_name
== '中班':
user
.user_grade
= "大班"
user
.save
()
return redirect
('/')
<html
>
{% if user_name
%}
<h4
>{{ user_name
}}小朋友
</h4
>
<a href
="/logout/">退出
</a
><br
/><br
/>
{{ gradee
}}
{% for c
in coursee
%}
{{ c
.name
}}
{% endfor
%} <br
/><br
/>
{% if user
.user_grade
!= '大班'%}
<a href
="/up_grade/"><button
>点击提升班级
</button
></a
>
{% endif
%} {% else %}
<a href
="/add_grade/">添加年级
</a
><br
/>
<a href
="/add_course/">添加课程
</a
><br
/>
<a href
="/add_user/">添加用户
</a
><br
/>
<a href
="/login/">用户登录
</a
><br
/>
<table border
="1px">
<tr
>
<th
>年级
</th
>
<th colspan
="3">课程
</th
>
</tr
>
{% for g
in grade
%}
<tr
>
<td
>{{ g
.name
}}</td
>
{% for c
in course
%} {% if c
.grade
.id == g
.id %}
<td
>{{ c
.name
}}</td
>
{% endif
%} {% endfor
%}
</tr
>
{% endfor
%}
</table
>
{% endif
%}
</body
>
转载请注明原文地址: https://yun.8miu.com/read-56585.html