2017-07-29 50 views
1

我正在Django製作一個食品訂單項目,並且我想設置唯一的訂單號碼,以便在訂單之後來找食物時快速驗證用戶。Django會話計數器

如果我創建一個數字和字母的隨機組合,可能會出現兩個訂單號碼相同的問題。是否可以使訂單號碼對每個會話都是唯一的?

回答

0

您是將此存儲在request.session還是它是數據庫中的模型?如果它在數據庫中的模型更簡單一些。只需在現場設置unique=True克瓦格。儘管你仍然需要生成獨特的領域。

看看this guy's_createHash功能在他的問題。結合接受的答案,您可以通過這種方式創建唯一的訂單ID。如果它只是附着在該request.session對象,它會變得更加困難(如果不是不可能的話),以確保100%的字符串不再重複,因爲沒有辦法查詢所有自定義添加的屬性的現有會話。我不認爲session是你要找的字,雖然。

0

只要用正常的增量順序號和一次性密碼(OTP)

用戶pyotp生成隨機OTP訂單。

當用戶的訂單,創造一個祕密的字符串。然後爲用戶生成一個OTP並將其發送給他們。

當他們到達接機時,他們會顯示OTP。您可以使用pyotp和要驗證的祕密字符串進行檢查。

使用計數器基於OTP。

將密鑰存儲在訂單模型中。

簡單有效。