我将用户输入带入Textarea小部件,然后逐行循环,并尝试拆分三个"单词" (第一个名字,姓氏,电子邮件)从每一行到一个列表,我稍后会处理。但是当我在线上使用split()时,它总是分成字符,我假设它是字段的CharField def的一部分,这意味着它不是字符串而是split()方法不会像我想要的那样表现出来。编辑:即使for
构造失败 - 它正在分析每个角色,而不是每条线。
该解决方法是什么?
class UserImportForm(forms.Form):
importtext = forms.CharField(required=True,widget=forms.Textarea(attrs={'cols': 40, 'rows': 15}))
elif "UserImport" in request.POST:
g = UserImportForm(request.POST, prefix='usrimp')
rawtext = g['importtext'].value()
if g.is_valid():
newusers = []
for lines in rawtext:
row = lines.split(" ")
if len(row) == 3 and validate_email(row[2]):
newusers.append(row)
答案 0 :(得分:0)
虽然这可能不是最好的方法,但这就是我最终要做的事情。仍然欢迎更好的答案!
elif "UserImport" in request.POST:
g = UserImportForm(request.POST, prefix='usrimp')
if g.is_valid():
rawtext = g.cleaned_data['importtext'].encode('utf8')
rawtext = "".join(rawtext)
rawtext = rawtext.split("\n")
newusers = []
for lines in rawtext:
row = lines.split()
if len(row) == 3:
try:
validate_email(row[2])
newusers.append([row[0],row[1],row[2],"processmore"])
except:
newusers.append([row[0],row[1],row[2],"Invalid email address"])