2021.10.2
经过一天的休整,感觉very good,继续搞!
1.团队搜索功能
- 当然,我得先把团队模型弄出来,在我的需求分析中,团队是和项目捆绑的,一个项目即一个团队,所以就是搞项目模型、先按原先想的写,之后再改。
- 创建好项目模型之后,按照管理,为搜索配置url、创建搜索views和搜索html
- 搜索框form用get提交参数到search视图,search视图通过reques.GET.get(’’)获取input里的值,input框记得加个name=’’,便于get获取。
- 将获取到的团队ID通过模型filter查找,
models.Project.objects.filter(pk=xxx).first()
filter返回的是QuerySet对象,类似一个列表,.first()取第一个值,如果查找不存在则QuerySet为空,first()取的也为None
- 将取到的值渲染到search.html,并携带是否存在参数exist
- 在search.html判断,如果为True则显示团队信息,False则显示不存在。
- 在模板中,要使用模型类的反向查找,要显示团队长的用户名
例如:
视图函数:render(request, ‘search.html’, {‘exist’:True, ‘project’: project(这个是查找结果)})
在模板中:{{ project.user.username }},user是User模型类的小写,username是User的用户名字段。
- 还落下一个申请加入的功能,之后补
- 搜索功能也基本搞定啦,接下来就是重中之重
2.管理中心功能(主要部分)
很多知识还在学习中,这部分可能更慢。 边写边学边完善吧。
- 完善:设置url白名单,如果在白名单内,没有登录也可直接访问,在白名单外,例如个人信息,项目中心想直接通过url
访问,则跳转会登录页面。
在中间件中加上判断如果当前url不在白名单: 获取当前路由request.path_info 如果存在白名单内,则直接return 中间件return空即通过
再判断request.login_status是否为空,如果为空,即没登录,跳转到登录界面。 (这部分报错了,提示我重定向太多次,先删了,之后再改)
|