模型数据在Django DB中,但未找到“过滤器”或“获取”

时间:2014-05-28 10:21:31

标签: django model filter get

我有'sqlite3 db',带有EmailChecker模型和电子邮件,我将从网站上查看。 问题是,如果我从django admin插入一条新记录,一切正常,但如果我从python代码插入新记录,我可以从django admin查看数据(显然是正确的)但我无法通过EmailChecker从django视图获取数据.object.filter(电子邮件=电子邮件)。

我必须说,如果我从管理面板重新保存每个对象,EmailChecker.object.filter(email = email)工作正常。但我不能这样做因为我有很多数据:(

查看代码:

""" AJAX """
def mail_check(request):
    response_data = {}
    if request.POST:
        em = request.POST.get('email')
        if EmailChecker.objects.filter(email=em).count() > 0:  # if email is in db,    form modal appeared
        email_checker = EmailChecker.objects.filter(email=em)[0]
        response_data['code'] = 1
        response_data['email'] = email_checker.email
        response_data['hotel'] = email_checker.hotel_option
    else:
        response_data['code'] = 0
        response_data['email'] = em
else:
    response_data['code'] = 1
    response_data['email'] = ''
return HttpResponse(json.dumps(response_data), content_type='application/json')

我使用此Python脚本从django命令行插入数据:

from Timeline.models import EmailChecker
a = open('mail_list','rb')
aux = 0
b = 0
for line in a:
    if aux%3 == 0:
        em = EmailChecker()
        name = line.replace(' ','')
        em.name = name

    elif aux%3 == 1:
         email = line
         em.email = email

    elif aux%3 == 2:
         grupo = line
         em.hotel_option = grupo
         em.invited_by = 'Aitor'
         em.save()
    aux+=1
    b += 1

print 'Total: %s'%(b/3)

来自mail_list文件的数据采用以下格式:

name
mail
group
name
mail
group
...
...
...

1 个答案:

答案 0 :(得分:0)

确定。解决。 我需要在每次迭代中添加此替换

line = line.replace('\n', '').replace('\r', '')
相关问题