2010-10-29 13 views
0

Я уже давно работаю над своей загрузкой в ​​CSV, и я наконец-то получил ее работу (вроде ха-ха). Поскольку она стоит прямо сейчас, мой код будет вытаскивать первую запись из CSV файл, и я слишком долго смотрел на него, и я уверен, что чего-то не хватает. Вот мои взгляды.pyCSV только с первой записью

@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)) 

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

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

ответ

3

Unindent следующая строка:

return HttpResponseRedirect('/clients/') 

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

+0

WOW, и поэтому я хотел опубликовать здесь, для новой пары глаз. Большое вам спасибо, вот в чем проблема. – TheLifeOfSteve

+0

несколько дней отступ - это не самый простой способ разграничения блоков;) – KevinDTimm

+0

@KevinDTimm: большинство дней, слишком много гнездящихся в одной и той же функции затрудняет отслеживание «глубины гнездования», независимо от отступов. –