将加密参数发送到django中的视图

时间:2010-05-28 07:05:21

标签: django

我想在django的编辑项目视图中发送项目id变量。任何人都可以告诉我,我该怎么做?

2 个答案:

答案 0 :(得分:1)

加密的一个方面是,如果您加密ID以传递它,您还必须先解密它才能查找。

可能对您有用的替代方法是为每个Project对象添加一个唯一的*安全哈希值,该对象在save()上创建到您选择的配方中:例如

import hashlib

class Foo(models.Model):
  ...attributes here, eg name, ...

  obj_hash = models.CharField(max_length=40, blank=True, null=False)

  def save(self):

  if not self.obj_hash:
    self.obj_hash = hashlib.sha1(string of attributes vals here).hexdigest()

  super(Foo, self).save()

然后在你的urlConf和视图中有一些东西使用或查找Foo的obj_hash而不是它的id。

(*是的,我知道技术上并不保证它是唯一的,但哈希冲突不应该是一个问题。如果你真的想要,可以在保存之前检查它是否存在。)

答案 1 :(得分:0)

但是,如果您需要加密数据,请使用安全套接字层(SSL)