请考虑来自此url的请求/messages/compose/(?P<recipients>[\+\.\w]+)/
其中收件人是由+
符号分隔的用户名。成功(邮件成功发送收件人)后,我在做什么:django url反向隐藏关键字参数
#success_url = 'message_send_success'
recipients = '+'.join([obj.username for obj in recipients]) #converting them back to original string
reverse(success_url, kwargs={'recipients': recipients})
这是URL向谁匹配:
url(r'^/messages/success/(?P<recipients>[\+\.\w]+)$', 'site.views.message_send_success', name='message_send_success')
但它会在网址中显示所有收件人,有没有走我可以隐藏这些收件人字符串在url中显示,并可以在请求中访问它?
其中一个原因是它看起来很乱,如果用户同时向20个用户发送消息,那么所有20个用户名将在url中显示。而且它也是不安全的,因为url中的用户名被公开。 –
在这种情况下,您不应该将它们发送到客户端,不是编码的。我已经说过一个选项,重复原来的'recipients'参数,另一个选项是使用临时表来存储'compose'的结果。恕我直言,前者是更好的,我不认为简化网址是值得额外的努力,在这种情况下,在服务器中存储状态。但是由你来决定。 – mgibsonbr