OJ2.0修改完善userInfo的跳转
来源:互联网 发布:淘宝客服美女头像 编辑:程序博客网 时间:2024/05/23 13:30
这次主要要实现的内容是对于和user相关的信息点击UserID能够跳转到userInfo页面:
1:查看个人信息页面:
在个人信息页面有两列信息,一列是当前用户的信息,一列是需要用来比较的用户的信息。在执行跳转的时候原则是:把点击的用户的信息放在右边那一列在页面中使用的
user对象是other。而把当前用户的信息放在左边一列,在页面中对应的是user。
2:执行修改:
2.1:测试
首先,为了不影响OJ的运行,我建立了一个userInfo的拷贝版user和userInfo的url的拷贝版user作为测试文件。
首先执行user页面的url可以执行
2.2:修改链接和view
原来已经存在的userInfo的页面的url是没有参数的传递的,我们需要在这个url后面加上用户ID传过去。
修改的url
url(r'^user/(?P<user_id>\d+)$', views.user, name = 'user'),
这里的user_id就是我们要传的用户ID,d+代表的是整型(后面改成了w+,就可以传字符型的ID了)。View.user是在view里面实现的类似于一个控制方法吧,就是接收用户的ID并
拿者这个ID去寻找这个用户生成我们需要的other用户。
def user(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': userID = request.POST['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: if password.strip() != '' and password == confirmPassword: user.password = password user.session = session user.specialty = specialty user.tel = tel user.email = email user.nickname = nickname user.save() return render(request, 'cugbacm/userInfo.html', {'userID':request.session['userID'],'user': user, 'other':other}) else: return HttpResponse("password and confirmPassword is not the same!") else: return render(request, 'cugbacm/userInfo.html', {'userID':request.session['userID'],'user': user, 'other':other})
这里我们可以看到我们接收来自url的参数user_id形成我们的other,然后在render里面把other用户传递给userInfo页面。这里的判断是修改个人信息的时候的修改用户新的
save。暂时还没有解决。
2.3:修改页面中的链接
这里的修改就是把HTML文件中的用户ID的href的链接都改成"/index/userInfo/需要传递的ID"。涉及到user的都要修改,已problemList.html为例,在涉及用户ID的地方添加链
接:
<ul class="dropdown-menu"> <li><a href="/index/userInfo/{{userID}}">User Info</a></li> <li><a href="#">Another action</a></li> <li><a href="#">Something else here</a></li> <li class="divider"></li> <li><a href="/index/login">Login out</a></li> </ul>
其中的{{userID}}就是我们需要传递的参数。
2.4:页面测试
重启服务器,检测目前修改的功能的实现情况,基本实现
3:修改userInfo原件:
本来想着直接就把那个view里面的user复制到view里面的userInfo上就OK了,结果出了一大堆错误,调了好久
先就是实现在userInfo里面点击user info跳转到userInfo的问题,按照前面的讨论,在这里只要把传递的参数设置成当前用户的ID就可以实现了。可是就是一直搞不定。传
参数过去的时候老实说404NotFound,主要的就是在Url的链接看到没有ID传过去,奇怪死了,明明传递了当前用户的ID过去就是不显示,而且在Url里面也有设计加传参。各种
改还是不对,然后发现下面的代码:
return render(request, 'cugbacm/user.html', {'userID':request.session['userID'],'user': user, 'other':other})
就是我还是跳转到了我先前写的user.html文件,改了之后貌似就可了。但是,此时服务器不干了,死活不给我反应页面的修改,各种调就是没反应,死了一会儿。重启了一下
电脑,等了一会连接上去,又有反应了,受不了了。然后改了一下一个链接,就OK了。然后就是把其它涉及到的ID的地方全部修改链接。
4:测试
涉及到UserID转userInfo的基本上在每个页面都要改。都是href的修改,基本上基本的需要都是可以的了。
总的来说,其实基本上没有代码量,就是修修改改。刚开始的时候一直在看整个OJ的页面的流程,了解基本的过程。后面的就是一些模仿性的修修改改。太挫了,各种逻辑不
清楚,还有就是我修改了url的传递参数的方式,很多地方又需要修改了,比如说个人信息的修改。其实当时也没考虑到这个,现在也是一个麻烦的事情,后面还需要修改。
- OJ2.0修改完善userInfo的跳转
- OJ2.0userInfo页面布局修改1.0-栅格系统简单学习
- OJ2.0userInfo页面Modify逻辑bug修复,search功能逻辑实现
- OJ2
- oj2
- oj2
- oj2.0 判题流程
- userinfo
- 完善的修改3389的方法
- 完善的修改3389的方法
- iOS: NSNotification的方法userInfo
- 获取键盘通知的 UserInfo
- OJ2.0用户Compare功能实现
- OJ2.0 Django+Rabbitmq+Celery配置
- 【Android Training - UserInfo】记住登入用户的信息[Lesson 0 - 章节概览]
- iOS: NSNotificationCenter的方法postNotificationName:object:userInfo:
- iOS: NSNotification的方法notificationWithName:object:userInfo:
- 64.获取键盘通知的 UserInfo
- 网站倒计时例子
- 【Android开发-2】每一次的Hello World,都是一次冒险和成长
- Combinations
- javase的复习-----11
- 链式栈
- OJ2.0修改完善userInfo的跳转
- JDK动态代理小例子
- iOS开发笔记之七——应用的生命周期
- java 重写equals后要重写hashcode();
- 关于spring的BeanFactory在使用注解的注解事项
- 暑假训练3-图论专题
- hdu-oj 1004 Let the Balloon Rise
- 游戏运营笔记七 网游新品游戏测试阶段
- ConcurrentHashMap原理