好吧,我不知道encrypt
这正是你的意思。我的意思是,使用say加密字符串md5
将无法在服务器端为您解密字符串。为此,您应该使用encode
,例如使用base64
编码系统。这会将 id 替换为编码字符串,但有人savvy
可能会注意到这一点并解码您 url 中的字符串。
您在这里尝试完成的是不推荐的通过默默无闻的安全性。您可以应用此技术,但最好在代码中添加更多安全性,例如权限和类似的东西。
要对您的用户 ID 进行编码,您可以将此方法添加到您的Item
类中:
class Item
...
def encoded_id(self):
import base64
return base64.b64encode(str(self.user_id))
def decode_id(self, id):
import base64
return base64.b64decode(id)
...
这样你就可以在你的视图中做到这一点:
<tr>
{% with user_id=item.encoded_id %}
#user_id have to be encrypted
<td><center><a href="{% url "accounts" user_id %}">{{ item.Company_name }}</a></center></td>
{% endwith %}
您将拥有使用id
base64 编码的网址。
注意我之前的警告。你永远不应该只依赖这个,这是一种有效的做法,但请记住编码可以反转。
希望这可以帮助!