私はDjangoに小さなアプリケーションを作成していますが、私はviews.pyのメソッドから宣言したいくつかの変数に状態を保存しています。ここでは、このファイルの重要な部分である:Django: "代入の前に参照されていますが、一部の変数のみ"
from app.playerlist import fullList
auc_unsold = fullList[:]
auc_teams = []
auc_in_progress = []
auc_current_turn = -1
print(auc_in_progress)
def auc_action(request):
data = json.loads(request.GET["data"])
# ...
elif data[0] == "start":
random.shuffle(auc_teams)
print(auc_unsold)
print(auc_in_progress)
auc_in_progress = [None, 0, None]
print(auc_in_progress)
auc_unsold
とauc_teams
変数が正常に動作。ただし、auc_in_progress
変数はこのメソッドでは表示されませんが、タイトルにエラーがあります。 printステートメントを取り出して、このコードで値を代入させると、その変数を再び使用するとすぐに、例外がコード内の他の場所にスローされます。
私は別の変数を作成しようとしましたが、この新しいものもこの問題を抱えているようです。
何が起こっていますか?
編集:私は解決策を見つけた:私はちょうどprint文の前global auc_in_progress
を書く場合は、すべてが正常に動作します。私がそれを書こうとすると、上の変数が何らかの理由でうまく動作しないと宣言しています。
私はこれがなぜ起こるのかわからないので、私はこれに満足していません、そして、私はそういうグローバルな使い方が嫌いです。誰か説明がありますか?
でも、もっと多くの人が同じオークションに参加できるようにすることです... 私はそれが醜いと私は "正しい"方法を知らないことに同意します、それはおそらくデータベースと何かもっと構造化されますか?しかし、これは私が私といくつかの友人のために作っている単純なアプリなので、特に私は期限が来ているので、私のために迅速かつ汚い作品。 – user1846231