編集:
Q1はenctype="multipart/form-data"
帳票テンプレートに追加することで解決。Q2についてコメントをお願いします。
Qn1: Forms からアップロードされた csv ファイルを読み込もうとすると、次のエラーが表示されます。この行に例外がある可能性があります。
records = csv.reader(f)
何を渡すかわからない。以下のコードを参照してください。
Qn2:モデルで csv 処理を行っても問題ありませんか (csv はドメイン データをアップロードするためのものであるため、ドメイン オブジェクトとして検証/永続化されます)。私は Django/Python を初めて使用します。これまでに見た例のほとんどには、モデルのメソッドがあまりありません。これは、モデルに関連付けられたすべてのビジネス ロジックをその中に取り込むという、私が以前使用していたものとは少し異なります。django での慣用的な使い方に疑問を感じます。
例外:
Django Version: 1.4.1
Exception Type: TypeError
Exception Value:
argument 1 must be an iterator
意見:
def upload(request):
if request.method == 'POST':
form = UploadFileForm(request.POST, request.FILES)
if form.is_valid():
w = Testme()
w.importCsv(form.cleaned_data["file"])
return HttpResponseRedirect('/')
else:
form = UploadFileForm()
return render_to_response('setup.html', {'form': form},context_instance=RequestContext(request))
形:
class UploadFileForm(forms.Form):
title = forms.CharField(required=False)
file = forms.FileField(required=False)
モデル:
class Testme(models.Model):
code = models.IntegerField()
ctu = models.IntegerField()
address = UsAddress
def importCsv(self, f):
records = csv.reader(f)
for line in records:
logger.debug(line)