初めての投稿になります。
当方、Django初心者のため基本的な質問でしたら申し訳ないのですが、以下のエラー処理をどのように実装したらよいか
調べてもいまいちうまく実現できないため、ご教授よろしくお願いいたします。
【実現したいこと】
以下の処理で、CSVファイルを指定してデータ登録する処理(①~③)は問題なく実装できました。
①HTMLページ上から「ファイルを選択」ボタンを押して、CSVファイル選択する
②「データ登録」ボタンを押す
③CSVのデータを取り込んでデータベースにデータを登録。
ただし、①でファイルを選択しない状態で、②の「データ登録」ボタンを押すと、以下のようなエラーが
発生するため、ファイルを選択しない状態で「データ登録」ボタンを押した場合は、「ファイルを選択してください」
といったエラーポップアップメッセージを表示したい。(難しいなら単純なエラー文字列を表示するだけでもいい)
--------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------
以下、①~③の処理に関するコードの概要です。
=========================================
HTMLのCVSファイル選択&データ登録のソース部分
=========================================
※urlで指定している「csv import」はviews.py内で定義したCSVデータ登録用の関数名
-----------------------------------------------------------------------------------------------------------------------------
<form action='{% url "csv_import" %}' method='POST' enctype="multipart/form-data">
</div>
<div class="alert alert-info alert-dismissible">
<h3>一括データ登録</h3>
<div class="btn-group">
<input type='file' name='csv'>
</div>
<div class="btn-group">
<input type="submit" class="btn btn-danger" value="データ登録">
</div>
{% csrf_token %}
</form>
</div>
-----------------------------------------------------------------------------------------------------------------------------
=========================================
csv import関数のソース
ServerInfoはモデル名です。(environment_id ,server_name, os_version,cpu,memoryの4つの要素)
=========================================
def csv_import(request):
form_data = TextIOWrapper(
request.FILES['csv'].file, encoding='sjis')
if form_data:
csv_file = csv.reader(form_data)
for line in csv_file:
serverinfo, created = ServerInfo.objects.get_or_create(
environment_id = line[0],
server_name = line[1],
os_version = line[2],
cpu = line[3],
memory = line[4],
)
serverinfo.save()
return redirect('index')
------------------------------------------------------------------------------------
おそらく、views.py内のcsv_import関数内でtry exceptでエラー処理をするかなにかをすればよいのかなというあたりは
ついているのですが、いろいろやってもうまくいかず悩んでいる状況です。
以上、よろしくお願いいたします。