初めての投稿になります。

当方、Django初心者のため基本的な質問でしたら申し訳ないのですが、以下のエラー処理をどのように実装したらよいか
調べてもいまいちうまく実現できないため、ご教授よろしくお願いいたします。

【実現したいこと】
以下の処理で、CSVファイルを指定してデータ登録する処理(①~③)は問題なく実装できました。

①HTMLページ上から「ファイルを選択」ボタンを押して、CSVファイル選択する 
②「データ登録」ボタンを押す 
③CSVのデータを取り込んでデータベースにデータを登録。


ただし、①でファイルを選択しない状態で、②の「データ登録」ボタンを押すと、以下のようなエラーが
発生するため、ファイルを選択しない状態で「データ登録」ボタンを押した場合は、「ファイルを選択してください」
といったエラーポップアップメッセージを表示したい。(難しいなら単純なエラー文字列を表示するだけでもいい)

--------------------------------------------------------------------------------------------------------------
Request Method: POST
Request URL: http://127.0.0.1:8000/server/csv_import/
Django Version: 2.0.1
Exception Type: MultiValueDictKeyError
Exception Value: 

'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でエラー処理をするかなにかをすればよいのかなというあたりは
ついているのですが、いろいろやってもうまくいかず悩んでいる状況です。

以上、よろしくお願いいたします。

-- 
-- 
-----------------                       http://djangoproject.jp/                
         -----------------
You received this message because you are subscribed to the Google Groups 
"django-ja" group.
To post to this group, send email to django-ja@googlegroups.com
To unsubscribe from this group, send email to 
django-ja-unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/django-ja
--- 
このメールは Google グループのグループ「django-ja」の登録者に送られています。
このグループから退会し、グループからのメールの配信を停止するには django-ja+unsubscr...@googlegroups.com 
にメールを送信してください。
その他のオプションについては、https://groups.google.com/d/optout にアクセスしてください。

メールによる返信