katsumasa0514
@katsumasa0514 (ASAP k)

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

djangoでのglobalについて。

変数(movie_id)をglobal宣言し、別箇所でmovie_idを使おうとしたところ、エラーが出てしまった。

@login_required(login_url='/movieist/accounts/login/')
def review(request):
    global movie_id
    if 'movie_id' in request.GET:
        movie_id = request.GET['movie_id']
        res = api.get_movie(movie_id)
        title = res['title']
        params = {
            'form': ReviewForm(),
            'title': title,
        }

        return render(request, 'movieist/review.html', params)
    if (request.method == 'POST'):
        obj = Review()
        form = ReviewForm(request.POST, instance=obj)
        if form.is_valid():
            review = form.save(commit=False)
            review.owner = request.user
            review.movie_id = movie_id
            review.save()
        return redirect(to='/movieist/overview')
    params = {
        'form': ReviewForm(),
    }

    return render(request, 'movieist/review.html', params)

○エラー
スクリーンショット 2021-01-09 20.06.10.png

スクリーンショット 2021-01-09 20.06.51.png

初学者で至らないところもあるかと思いますが、よろしくお願いします。

1

1Answer

global 変数名
はあくまでそのスコープで 変数名 を書いたときにグローバル変数とみなすという宣言で
定義は別に行わないとなりません

トップレベルでNoneでもいいので代入してあげてください

0Like

Comments

  1. @katsumasa0514

    Questioner

    回答ありがとうございます!
    別件で返信が遅れてしまい申し訳ありませんでした。
    参考にさせていただきます。

Your answer might help someone💌