Login
芋圆社区 > 编程 > Django > Django变量名的坑

Django变量名的坑

1074
0
2021-06-18
2022-10-12
Hey、小怪兽


关于User变量名


  • • 在写Header的时候,在网站的右上角会显示登录用户的名字
  • • 首先需要在前端判断用户是否登录,Django自带了判断用户是否登录
{% if user.is_authenticated %}
{% endif %}
  • • 判断好后,就需要显示登录用户的名字了
{{ user.username }}
  • • 在这样看并没有什么问题,接下去写个人资料卡,在Django的Views里面写:
def profile_view(request, id):
    user = User.object.get(id=id)
    return render(request, 'userProfile.html', locals())
  • • 在前端也写用户的信息:
{{ user.username }}
{{ user.QQ }}
{{ user.Wechat }}
{{ user.email }}
......
  • • 在登录用户点击资料卡按钮的时候,会触发这个方法,获取请求用户的id,接着在数据库里找到这个配对的id
  • • User就是用户模型,user就是这条数据了,get是方法,还有filiter,create等
  • • 取到这个数据后,然后跳转到userProfile这个html页面
  • • locals()就是导出方法所有的变量,就是user
  • • 这时问题就出来了,由于我在方法里面写了user变量,和Django系统自带的user重复了,因此,如果访问其他用户的空间,那么右上角的名字就会变成访问其他用户的名字了,就不是自己登录的名字了
  • • 解决方法,顶部导航栏的user和用户个人资料卡的user都用其他变量,比如userProfile,userLogin等等
  • • 虽然是个小问题,但是困惑了我好久,之前的芋圆社区1.0就因为怎么也看不出来哪里有问题而创了用户自己的资料卡和访问的资料卡,非常麻烦

关于Block变量名


  • • Block的原理和User一样,在写进程代码的时候,用block作为阻塞进程的变量名
  • • 结果前端就一直显示content而不是显示阻塞的进程

注意


  • • 编写变量名一定一定要规范!
  • • 可以用驼峰法,第一个字母小写,后面的单词大写,如userProfile,happyTime,newYear
  • • 也可以添加下划线,user_profile,happy_time
  • • 尽可能避免一些系统的变量名,比如user,for,block,if等

上一篇:order_by多条件和随机排序

Message Board
回复
回复内容不允许为空
留言字数要大于2,小于200!
提交成功,5s后刷新页面!
编程导航

Django使用Less

美化后台管理Admin

FBV 和 CBV

SimpleUI后台导航栏报错

Django多条件查询

标签属性使用变量引发的BUG

auto_now=True引发的问题

图片上传后大小问题

Django版本查看和升级

values和values_list

过滤器linebreaksbr

拆分views文件

AutoField报错

order_by多条件和随机排序

Django变量名的坑

Copyright © 2020 芋圆社区

Powered by 浙ICP备2020039309号-1

此页面不支持夜间模式!

已进入夜间模式!

已进入普通模式!

搜索框不允许为空

签到成功!经验+5!芋圆币+2!

签到失败!今日已签到!

需要登录社区账号才可以进入!

复制成功
寄,页面未加载完成或页面无锚点