我需要匿名制作模型。 我的模特是
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")
以获取和过滤
有没有更好的方法让模特匿名?
所以即使有人闯入数据库,他也无法获得正确的数据。
答案 0 :(得分:0)
如果我理解正确您正在寻找一种方法将您的Laddu模型链接到用户模型,那么如果有人将他的手放在两个桌子上,他/她将无法知道哪个Laddu对象是与哪个User对象有关。
如果是这种情况,而不是字段:
owner = models.ForeignKey(User)
你需要有一个CharField,它将是用户PK的“加密”版本,类似
owner_pk = models.CharField()
然后每次您想要访问您需要的用户:
user = User.objects.get(pk=decrypt(laddu_obj.owner_pk))
请参阅此答案以了解如何为整数PK生成随机密钥: What is the best way to get a semi long unique id (non sequential) key for Database objects