これは私のfirtsの質問です。ご協力いただきありがとうございます。ユーザーがアップロードしたcsvファイルを読み込み、Djangoモードでデータを保存するherokuでライブ
私はDjango School管理アプリを持っています。私はユーザーがcsvファイルを読んで特定のヘッダーを持つデータベースに格納できるようにしたいと思います。
私のコードはローカルで非常にうまく動作します。しかし、最近私はそれをテストできるように英雄を押します。すべての静的資産はAmazon S3に保存されています。それは動作します。
しかし、私がcsvファイルを読み込もうとすると、内部サーバーエラーが発生します。
ここに生徒を保存するコードです。
def convert_header(csvHeader):
cols = [ x.replace(' ', '_').lower() for x in csvHeader ]
return cols
def import_data(request):
if request.method == 'GET':
return render(request, 'school/import.html')
if request.method == 'POST' and request.FILES['myfile']:
if request.POST.get("object") == '':
message = 'You may chose an object'
return render(request, 'school/import.html', {'message': message })
if request.POST.get("object") == 'Pupil':
myfile = request.FILES['myfile']
fs = FileSystemStorage(location='eSchool/media/documents')
filename = fs.save(myfile.name, myfile)
uploaded_file_url = fs.path(filename)
data = csv.reader(open(uploaded_file_url), delimiter=',')
header = next(data)
header_cols = convert_header(header)
i = 0
k = 0
for row in data:
pupil = Pupil()
for k in range(len(header_cols)):
row_item = row[k].split(',')
for item in row_item:
key = header_cols[k]
if key == 'responsible':
item = Responsible.objects.get(pk= int(item))
print(item.first_name)
setattr(pupil, key, item)
else:
setattr(pupil, key, item)
k +=1
pupil.save()
i = i + 1
detailed = 'Sucessfully created '+ str(i) + ' Pupils '
return render(request, 'school/import_success.html', {'detailed' : detailed })
Documentという名前のモードにデータを保存したいと思います。私はそれを作成します。私はまだエラーが発生しますそれを試してみてください。助けてください。
エラーメッセージを表示 –
ローカルで実行すると、エラーは発生しません。しかし、私がライブに行くとき、ブラウザでこのエラーが発生します。内部サーバエラー – Wicel
'heroku logs'を実行すると、エラーログが表示されます。 –