加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python – django:将每个用户数据分开

发布时间:2020-12-16 23:29:07 所属栏目:Python 来源:网络整理
导读:我正在努力研究如何/最好,最安全的方法来保持用户的数据在我需要写的 django网站中分开. 这是我需要做的一个例子…… 示例应用程序ToDoList 使用django contrib.auth来管理用户/密码等,我将拥有以下用户 汤姆 吉姆 背风处 将有一个ToDo模型(在我的真实应用程
我正在努力研究如何/最好,最安全的方法来保持用户的数据在我需要写的 django网站中分开.

这是我需要做的一个例子……

示例应用程序ToDoList

使用django contrib.auth来管理用户/密码等,我将拥有以下用户

汤姆
吉姆
背风处

将有一个ToDo模型(在我的真实应用程序中将有其他模型)

class ToDo(models.Model):
    user = models.ForeignKey(User)
    description = models.CharField(max_length=20)
    details = models.CharField(max_length=50)
    created = models.DateTimeField('created on')

我遇到的问题 – 可能是在考虑这个问题:这将如何被锁定,因此汤姆只能看到汤姆的待办事项列表,李只能看到他的待办事项列表等等……

我看过一些帖子说你可以在每个查询中使用过滤器,或者使用网址,所以网址可能看起来像www.domain.com/username/todo

但无论哪种方式,我都不确定这是否是正确的方式/最好的方式,或者在阻止用户看到彼此数据方面的疯狂

干杯

理查德

解决方法

一种方法是过滤当前登录用户的ToDo项目:
from django.contrib.auth.decorators import login_required
from django.shortcuts import render

from your_app.models import ToDo

@login_required
def todos_for_user(request):
    todos = ToDo.objects.filter(user=request.user)
    return render(request,'todos/index.html',{'todos' : todos})

这将仅锁定已认证用户的视图,并由登录用户从请求中过滤,即使登录,其他用户也无法访问其他用户的ToDo记录.希望能帮到你.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读