Bel*_*dez 2 django obfuscation django-urls
我有一个看起来像这样的 Django 模型:
class Person(models.Model):
name = models.CharField(max_length=32)
place = models.ForeignKey(Place, related_name='people')
approved = models.BooleanField()
objects = PersonManager()
@models.permalink
def get_absolute_url(self):
return('deal_details', (), {
'person_slug': slugify(self.name),
})
Run Code Online (Sandbox Code Playgroud)
如您所见,我已经有了对象的绝对 URL。但是,我想创建一个难以猜测的 URL 来跟踪对象的批准过程。有人做过类似的事情和/或对我应该如何进行有任何建议吗?
我的第一个想法是创建一个像obfuscated_key这样的模型字段,它是通过save模型的函数随机生成的。然后 URL 看起来像/people/status/<id>/<obfuscated_key>/. 但也许有更好的方法来解决这个问题?
这样做的一个好方法是使用安装的密钥(来自 settings.py)散列对象的 ID。这就是密码重置电子邮件表单所做的 - 有一些有用的代码django.contrib.auth.tokens- 并且在最新的 SVN 版本中,django.contrib.auth.crypto.
| 归档时间: |
|
| 查看次数: |
1485 次 |
| 最近记录: |