CSV только берет первую запись - PullRequest
0 голосов
/ 29 октября 2010

Я некоторое время работал над загрузкой CSV, и наконец-то все заработало (вроде хаха). Как сейчас, мой код будет извлекать только первую запись из файла CSV, и у меня естьсмотрю на это слишком долго, и я уверен, что что-то упустил.Вот мои views.py

@login_required
def importClient(request):
print "its being called"
if request.FILES:
    form = ImportClientForm(request.POST, request.FILES)
    if form.is_valid():
        print "its valid!!"
        if '.csv' in request.FILES['contact_file'].name:
            print "It's a CSV file!!!"
            importfile = csv.DictReader(request.FILES['contact_file'])
            for row in importfile:
                #establish client name
                cn = row.get('Customer', None)

                c = Clients(
                    client_name = cn,
                    phone = "",
                    phone_cell = "",
                    fax = "",
                    email = "",
                    add_1 = "",
                    add_2 = "",
                    city = "",
                    province = "",
                    country = "",
                    postal = "",                        
                )

                #check to see if client exists already
                already_there = Clients.objects.filter(client_name = cn)[:1]
                if not already_there:
                        c.save()

                return HttpResponseRedirect('/clients/')

else:
    form = ImportClientForm()

    return render_to_response('clients/importClients.html', {
            'form': form}, context_instance=RequestContext(request))

Есть что-то, чего мне не хватает, я уверен, что это действительно просто.

Спасибо, Стив

1 Ответ

3 голосов
/ 29 октября 2010

Отмените отступ в следующей строке:

 return HttpResponseRedirect('/clients/')

Вы помещаете его в цикл for row in importfile:, и ваш код возвращает HTTP-ответ после первой итерации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...