在我的Satchmo項目中,我有一個令人討厭的bug,其中contact_contact表中的某行被重新分配給新用戶。創建新帳戶時聯繫人被劫持
如果我已在一個瀏覽器窗口中登錄商店,然後(在另一個新窗口中),通過瀏覽到/ accounts/register /創建一個新帳戶。如果我先登出,不會發生這種情況。
在數據庫中發生的事情是,我記錄的原始用戶(他的用戶配置文件都已設置)「丟失」了他的用戶配置文件。發生的事情是,該用戶的「聯繫人」不再爲他存在,因爲它現在「指向」新用戶。即它的user_id字段現在指向auth_user中新的'id'。聯繫人記錄的內容將被新用戶的信息覆蓋。
我還沒有改變之外registration_form.html
被製成在的Satchmo的登錄碼的任何變化有可能,在登記表被讀出的一些從POST請求中的用戶信息,並考慮在接觸屬於前用戶?
我重現了錯誤,然後在數據庫上做了一個'差異'。這是確鑿的證據:
+INSERT INTO "auth_user" VALUES(138,'newuser','New','User','[email protected]',...
-INSERT INTO "contact_contact" VALUES(1,'','Old','User',2,'Customer',NULL,'1999-01-01','[email protected]','','2012-04-30');
+INSERT INTO "contact_contact" VALUES(1,'','New','User',138,'Customer',NULL,'1999-02-02','[email protected]','','2012-04-30');
你可以清楚地看到,A)記錄號碼1被重新使用,並且二)它現在指向id爲創建新用戶138
非常感謝, Thomas
也許我必須知道的不多,但你會介意顯示一些代碼示例你的零件如何溝通在一起?從文字只有我什麼都不懂。 –