2016-12-19 3 views
1

私のテーブルをcsvファイルにエクスポートします。 しかし、私のテーブルのフィールドのいくつかはプロパティです。これらたとえばExcelにモデルプロパティを印刷するには?

: 'をcurrent_tobe_payed'、 'current_balance'、 'current_period'、 'total_payment'、 'total_discount'

def export_leaseterm_csv(request): 
     response = HttpResponse(content_type='text/csv') 
     response['Content-Disposition'] = 'attachment; filename="leaseterm.csv"' 

     writer = csv.writer(response) 
     writer.writerow(['lease', 'increase', 'amount', 'is_terminated', 'current_tobe_payed', 'current_balance', 'current_period','total_payment', 'total_discount']) 

     leaseterms = LeaseTerm.objects.all().values_list('start_period', 'end_period', 'lease', 'increase', 'amount', 'is_terminated', 'current_tobe_payed', 'current_balance', 'current_period','total_payment', 'total_discount') 
     for leaseterm in leaseterms: 
      writer.writerow(leaseterm) 

     return response 

私はそれを克服することができますどのようCannot resolve keyword 'current_tobe_payed' into field.

を取得していますか?

UPDATE:

def export_leaseterm_csv(request): 
    response = HttpResponse(content_type='text/csv') 
    response['Content-Disposition'] = 'attachment; filename="leaseterm.csv"' 

    writer = csv.writer(response) 


    leaseterms = serializers.serialize("python", LeaseTerm.objects.all()) 

    for leaseterm in leaseterms: 
     writer.writerow([value[0] for value in leaseterm]) 

    return response 

出力受信

F、M、P F、M、P F、M、P:私は回答に基づいてビューを更新した

F、M、P F、M、P

期待されている:

33 8788 -6105.00 0 0 6105.00 555.00 FALSE TRUE偽

28 4545 -5537.00 1120.00 15.00 6657.00 556.00 FALSE TRUE偽

32 6789 -3108.00 0 0 3108.00 777.00 FALSE TRUE偽

34 2222 0.00 0 0.00 0.00 777.00 False True False

+0

はい私のテーブルにはデータがあります。私はすでにレポートにそれを表示してから、それをExcelに印刷したいのです。 –

答えて

1

明らかにcurrent_tobe_payedは、あなたが話すプロパティのためにオンです。プロパティはvalues_list呼び出しで使用できません。コードを次のように変更してください:

from django.core import serializers 
data = serializers.serialize("python", LeaseTerm.objects.all()) 

for leaseterm in data: 
    writer.writerow([value for value in leaseterm['fields'].values()]) 

このシリアライザは、私たちのモデルオブジェクトから標準的なpythonオブジェクトを作成し、フィールドを反復することができます。そしてリストの理解を少し助けます。

+0

ありがとう! これは動作しますが、出力が奇妙です start_period、end_period、lease、increase、amount、is_terminated、current_tobe_payed、current_balance、current_period、total_payment、total_discount "{'description':なし、 'created':datetime.datetime(2016、 'start_period':1、 'modified':datetime.datetime(2016,11,11,17,6,23,421,000)、 'is_active':True、 'start_period':1、 'modified':datetime.datetime(2016,11,11,17,6,23,421,000) 、 'version':1478883036718200L、 'end_period':12、 'is_terminated':False、 'lease':tzinfo = )、 '増加':小数点( '3.00')、 '量':小数点( '556.00' 13}」、conditions.leaseterm、28 –

+0

これは、それが今どのように見えるかである: start_period、end_period、リース、増加量、 Fをis_terminated、M、P F、M、P F、M、P f、m、p f、m、p –

+0

本当に申し訳ありませんが、構文が混ざっています。今すぐお試しください – e4c5

関連する問題