katsumasa0514
@katsumasa0514 (ASAP k)

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

PythonのIndexError

初めての質問投稿です。
至らないとこだらけですが、初心者なのでお手柔らかにお願いします。

if文でPOSTを受け取っていないのに、中の「movie_id = res['results'][0]['id']」が実行されてしまいエラーが出る。

views.py
def overview(request):
    api = TMDB(token)
    if (request.method == 'POST'):
        res = api.search_movies(request.POST)

        movie_id = res['results'][0]['id']
        image = api.get_movie_images(movie_id)
        image = f"{api.img_base_url_}{image['posters'][0]['file_path']}"

        params = {
            'title': res['results'][0]['original_title'],
            'overview': res['results'][0]['overview'],
            'image': image,
            'form': FindForm(request.POST),
        }
    else:
        params = {
            'form': FindForm(),
        }

    return render(request, 'movieist/overview.html', params)
overview.html
<div class="main">
        <div class="container">
            <div class="upside">
                <title>映画概要></title>

                <table>
                    <form action="{% url 'overview' %}" method="post">
                        {% csrf_token %}
                        {{form}}
                        <tr>
                            <th></th>
                            <td><input type="submit" value="click"></td>
                        </tr>
                    </form>
                </table>
                <h1>{{title}}</h1>
                <p>{{overview}}</p>
                <img src={{image}}>
            </div>
        </div>
    </div>

エラー:
スクリーンショット 2020-12-13 15.06.09.png

0

1Answer

エラーメッセージの

リクエスト方法: 役職

は Request method: POST でしょうか?(メッセージは機械翻訳せずにそのまま貼ってもらえると助かります)

ということは、 if 文で POST を受け取っていないという認識が間違っていて、実際に POST リクエストが来ていると思います。 <form action="..." method="POST"> なフォームをブラウザで表示して送信ボタンを押すと POST リクエストになります。

0Like

Comments

  1. @katsumasa0514

    Questioner

    回答ありがとうございます。
    ブラウザで開こうとした際にこのエラーが出ます。
    なので送信ボタンを押していない状態でIF文の中身が実行されるということはコード自体が間違っているのでしょうか?
    説明不足ですいません、、、、
    よろしくお願いします。
  2. @katsumasa0514

    Questioner

    ブラウザを立ち上げ直したところエラーは消えました。
    初めてキータで質問しましたが、ここまで丁寧に説明していただけるとは思いませんでした。
    本当にありがとうございました。

Your answer might help someone💌