如何更改get result的ID。获取、过滤和s

2024-10-04 11:27:24 发布

您现在位置:Python中文网/ 问答频道 /正文

我要做个匿名模特。 我的模型是

class Laddu(models.Model):
    owner = models.ForeignKey(User)
    url = models.TextField()

我要让它匿名

Laddu.save(owner=<owner with pk = 1>, url = "google.com")

实际上会节省

n = anonimusAlgo(1)
Laddu.save(owner=<owner with pk = n>, url = "google.com")

对于get和filter也是如此

有没有更好的办法让模特匿名

所以最终的结果是即使有人入侵数据库,他也无法得到正确的数据


Tags: 模型comurlmodelmodelssavewithgoogle
1条回答
网友
1楼 · 发布于 2024-10-04 11:27:24

如果我理解正确,您正在寻找一种方法将您的Laddu模型链接到一个用户模型,这样,如果有人将手放在两个表上,他/她将无法知道哪个Laddu对象与哪个用户对象相关

如果是这种情况,则不使用字段:
所有者=models.ForeignKey(用户)

你需要有一个CharField,它将是用户PK的“加密”版本,类似于

owner_pk = models.CharField()

然后每次您想访问所需的用户时:

user = User.objects.get(pk=decrypt(laddu_obj.owner_pk))

查看以下答案,了解如何为整数PKs生成随机键: What is the best way to get a semi long unique id (non sequential) key for Database objects

相关问题 更多 >