我不知道如何描述这个问题,但我会尝试。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