2010-10-29 70 views
0

我一直在做我的CSV上傳一段時間,我終於得到它的工作(有點哈哈)因爲它現在,我的代碼將只拉第一個記錄從CSV文件,我一直在看它太久了,我確定我錯過了一些東西。這裏是我的views.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

取消縮進下面一行:

return HttpResponseRedirect('/clients/') 

你把它放在for row in importfile:循環中,使您的代碼返回第一次迭代之後的HTTP響應。

+0

哇,這就是爲什麼我想張貼在這裏,爲了一雙新鮮的眼睛。非常感謝,那就是問題所在。 – TheLifeOfSteve 2010-10-29 16:07:54

+0

某些天的縮進並不是劃分塊的最簡單的方法;) – KevinDTimm 2010-10-29 16:09:39

+0

@KevinDTimm:大多數日子裏,在同一個函數中嵌套過多使得難以跟蹤「嵌套深度」,而不管是縮進。 – 2010-10-29 16:16:02