【发布时间】:2017-09-01 14:05:24
【问题描述】:
我不知道如何描述这个问题,但我会试试看。
背景信息
我在我的 Django Web 应用程序中有一个用户可以导入其他用户的功能。用户可以通过拖放导入一个 .csv 文件,该文件被转换为 JSON 2D 数组(使用 Papaparse JS)
在视图中,我循环遍历 2D 数组中的元素并创建一个“Importuser”,其中包含一些属性,如“firstname”、“lastname”、email 等。
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,dave@example.com
Joe,Somename2,joe@example.com
Yannik,Somename3,yannik@example.com <<That's me (exsiting user)
我做错了什么?有人可以帮我理解为什么会这样吗?
【问题讨论】:
-
不,因为我检查数据库中的用户是否为无
标签: python arrays django python-3.x csv