0
我想根據模型的最後一個id在Django模型中插入一行。我的查詢是喜歡,Django模型在查詢中讀取和創建?
Order.objects.create(group=123131, identifier=friendly_invoice.encode(Order.objects.last().id))
# group and identifier are unique together
我登錄查詢如圖http://www.dabapps.com/blog/logging-sql-queries-django-13/,
(0.016) SELECT `order`.`id`, `order`.`group`, `order`.`identifier`, `order`.`created`, `order`.`modified` FROM `order` ORDER BY `order`.`id` DESC LIMIT 1; args=()
DEBUG 2015-12-30 12:16:21,881 (0.016) SELECT `order`.`id`, `order`.`group`, `order`.`identifier`, `order`.`created`, `order`.`modified` FROM `order` ORDER BY `order`.`id` DESC LIMIT 1; args=()
DEBUG 2015-12-30 12:16:21,881 (0.016) SELECT `order`.`id`, `order`.`group`, `order`.`identifier`, `order`.`created`, `order`.`modified` FROM `order` ORDER BY `order`.`id` DESC LIMIT 1; args=()
(0.000) INSERT INTO `order` (`group`, `identifier`, `created`, `modified`) VALUES ('123131', '378ETGY', '2015-12-30 06:46:21', '2015-12-30 06:46:21'); args=[u'123131', '378ETGY', u'2015-12-30 06:46:21', u'2015-12-30 06:46:21']
DEBUG 2015-12-30 12:16:21,881 (0.000) INSERT INTO `order` (`group`, `identifier`, `created`, `modified`) VALUES ('123131', '378ETGY', '2015-12-30 06:46:21', '2015-12-30 06:46:21'); args=[u'123131', '378ETGY', u'2015-12-30 06:46:21', u'2015-12-30 06:46:21']
DEBUG 2015-12-30 12:16:21,881 (0.000) INSERT INTO `order` (`group`, `identifier`, `created`, `modified`) VALUES ('123131', '378ETGY', '2015-12-30 06:46:21', '2015-12-30 06:46:21'); args=[u'123131', '378ETGY', u'2015-12-30 06:46:21', u'2015-12-30 06:46:21']
這是創建以dB兩個SQL查詢。我相信如果這個代碼是由兩個並行請求執行的話,這將會出錯。
如何以安全的方式編寫此查詢?
我認爲我們需要對'friendly_invoice'一些更多的信息解決了這個。 – khajvah
這是一個將id加密成字母數字值的函數。它隱藏用戶的ID並向他/她顯示一個字母數字字符串。 – Netro
你每次需要進行查詢時都解碼和編碼嗎?我在這裏感覺到更大的問題。 – khajvah