django多对一,三张表之间的关系

    xiaoxiao2022-07-13  121

    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'] # 删除用户的session 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 # 将用户信息存入session 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>
    最新回复(0)