請考慮來自此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