设为首页 加入收藏

TOP

OJ2.0userInfo页面Modify逻辑bug修复,search功能逻辑实现(一)
2015-07-20 17:56:02 来源: 作者: 【 】 浏览:8
Tags:OJ2.0userInfo 页面 Modify 逻辑 bug 修复 search 功能 实现

这周的主要任务:userInfo页面Modify逻辑bug修复,search功能逻辑实现。

(一)Modify逻辑bug修复:

这里存在的bug就是在我们不重置密码的时候按照前面的逻辑是不能提交修改,这个逻辑是错误的,应该改为可以不修改密码也能提交,主要是if逻辑判断的修改

先看一下代码:

def userInfo(request, user_id):
  try:
    user = User.objects.get(userID = request.session['userID'])
  except:
    return HttpResponseRedirect("/index/login")
  other = User.objects.get(userID = user_id)
  if request.method == 'POST':
    if request.POST.has_key("Modify"):
      userID = request.session['userID']
      oldPassword = request.POST['oldPassword']
      password = request.POST['password']
      confirmPassword = request.POST['confirmPassword']
      session = request.POST['session']
      specialty = request.POST['specialty']
      tel = request.POST['tel']
      email = request.POST['email']
      nickname = request.POST['nickname']
      if oldPassword != user.password:
        return HttpResponse("password error")
      else:
        user.password = oldPassword
        user.session = session
        user.specialty = specialty
        user.tel = tel
        user.email = email
        user.nickname = nickname
        if password.strip() != '' and password == confirmPassword:
          user.password = password
          user.save()
          other = User.objects.get(userID = user_id)
          return render(request, 'cugbacm/userInfo.html', {'userID':request.session['userID'],'user': user, 'other':other})
        else:
          if password != confirmPassword:
            return HttpResponse("password and confirmPassword is not the same!")
          else:
            user.save()
            other = User.objects.get(userID = user_id)
            return render(request, 'cugbacm/userInfo.html', {'userID':request.session['userID'], 'user':user, 'other':other})
    else:
      users = User.objects.all()
      userid = request.POST['idname']
      try:
        if userid.strip():
          users = users.filter(userID__contains = userid)
        
        #return HttpResponse(users
        return render(request, 'cugbacm/userInfo.html', {'userID':request.session['userID'], 'user': user,  'other':other, 'users':users, 'idname':userid })
      except :
        #return HttpResponse("fuck")
        return render(request, 'cugbacm/userInfo.html', {'userID':request.session['userID'],'user': user, 'other':other, 'users':{} })
  else:
    return render(request, 'cugbacm/userInfo.html', {'userID':request.session['userID'],'user': user, 'other':other, 'users':{} })

对了,上次还有一个问题就是在一个表单中有多个按钮的时候如何判断是哪一个按钮的提交,比如当前的userInfo页面有Modify和Search两个按钮,那么如何判断到底是

哪一个的提交呢。在网上查了一下,一种解决方法就是给不同的submit标记不同的name,然后再如果request.POST.has_key("Modify")成立就代表提交的是Modify按钮,否则的

话就是Search的提交了。这种方法还是比较实用的。

对于上述的Modify的逻辑的问题,主要就是先判断如果password和confirmpassword相同且不空的时候,提交修改。在判断两者不相同的时候错误提示。在判断两者同为

空的时候提交修改。这样就符合实际的情况了。

(二):UserInfo页面搜索实现:

按照上周的预计,是要在UserInfo页面实现一个用户的搜索,其实原理和problemList的搜索差不多。当我们解决了一个表单中有多个按钮的时候,那么就是一个逻辑判断而已。

if request.POST,has_key("Modify") else 执行搜索的过程:

users = User.objects.all()
      userid = request.POST['idname']
      Nickname = request.POST['idname']
      try:
        if userid.strip():
          users = users.filter(userID__contains = userid)
        #return HttpResponse(users)
        return render(request, 'cugbacm/userInfo.html', {'userID':request.session['userID'], 'user': user,  'other':other, 'users':users, 'idname':userid })
      except :
        #return HttpResponse("fuck")
        return render(request, 'cugbacm/userInfo.html', {'userID':request.session['userID'],'user': user, 'other':other, 'users':{} })

当我们判断是来自Search的请求时,首先使用request.POST["idname"]从页面取出来输入的查询条件。然后初始化user对象集合,

首页 上一页 1 2 下一页 尾页 1/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇HDU 4944 FSF’s game(数论+递推) 下一篇HDOJ 4941 Magical Forest

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: