Python 如何更改get结果的ID。获取、过滤和保存
我需要制作一个匿名模型。 我的模型是Python 如何更改get结果的ID。获取、过滤和保存,python,django,django-models,Python,Django,Django Models,我需要制作一个匿名模型。 我的模型是 class Laddu(models.Model): owner = models.ForeignKey(User) url = models.TextField() 我需要匿名,这样才能 Laddu.save(owner=<owner with pk = 1>, url = "google.com") Laddu.save(所有者=,url=“google.com”) 实际上会节省 n = anonimusAlgo(1)
class Laddu(models.Model):
owner = models.ForeignKey(User)
url = models.TextField()
我需要匿名,这样才能
Laddu.save(owner=<owner with pk = 1>, url = "google.com")
Laddu.save(所有者=,url=“google.com”)
实际上会节省
n = anonimusAlgo(1)
Laddu.save(owner=<owner with pk = n>, url = "google.com")
n=anonimusAlgo(1)
save(owner=,url=“google.com”)
get和filter也是如此
有没有更好的方法让模型匿名
所以,最终的结果是,即使有人入侵数据库,他也无法获得正确的数据。如果我理解正确,您正在寻找一种方法,将您的Laddu模型链接到用户模型,这样,如果有人在两个表上都得到了手,他/她将无法知道哪个Laddu对象与哪个用户对象相关 如果是这种情况,请不要选择字段:
所有者=型号。外键(用户) 您需要有一个CharField,它将是用户PK的“加密”版本,类似于
owner_pk = models.CharField()
然后,每次您想要访问所需的用户时:user = User.objects.get(pk=decrypt(laddu_obj.owner_pk))
请参阅此答案,了解如何为整数PKs生成随机键:
我不确定我是否理解您想做什么或为什么要做。所以您想把您的Laddu保存给所有者,对吗?通过某种算法生成n,如果n是所有者表中的主键,则将Laddu保存给该所有者,对吗?