我不知道如何描述這個問題,但我會嘗試。python在for循環中列出Bug
背景信息
我在我的Django的web應用程序的功能,用戶可以導入其他用戶。用戶可以通過拖放導入.csv文件,該文件被轉換爲JSON 2D陣列(使用Papaparse JS)
在視圖中,我遍歷2D數組中的元素並創建一個「Importuser」,其中包含一些屬性,如「名字」,「姓氏」,電子郵件等。
class Importuser:
firstname = None
lastname = None
email = None
import_errors = []
def __init__(self, fn, ln, e):
self.firstname = fn
self.lastname = ln
self.email = e
class Importerror:
message = None
type = None
def __init__(self, m, t):
self.message = m
self.type = t
在for循環中,我還驗證了電子郵件地址,以便沒有加倍的用戶。
data = jsonpickle.decode(method.POST["users"])
users = []
for tempuser in data:
u = validate(Importuser(tempuser[0], tempuser[1], tempuser[2])
users.append(u)
在驗證功能,我檢查是否有同一個電子郵件
def validate(user : Importuser):
user_from_db = User.objects.filter(email=user.email)
if user_from_db:
user.import_errors.append(Importerror("The user exists already!", "doubleuser"))
return user
問題
任何用戶的for循環完成所有用戶後具有相同的錯誤,但不是當我在for循環中打印每個用戶時。每個用戶的Importerror-Object引用相同的內存位置,但在我的測試導入中應該只有一個用戶出錯。
test.csv:
Dave,Somename,[email protected]
Joe,Somename2,[email protected]
Yannik,Somename3,[email protected] <<That's me (exsiting user)
我做錯了嗎?有人能幫我理解爲什麼會發生這種情況嗎?
沒有,因爲我檢查是否從該數據庫的用戶是無 – Yannik