フルスタックチャンネル
サインアップサインアップ
ログインログイン
利用規約プライバシーポリシーお問い合わせ
Copyright © All rights reserved | FullStackChannel
解決済
Djangoにおけるグローバル変数について
Django
Python
atnek
2022/08/14 15:33

実現したいこと

お世話になります。

統一価格で販売する商品があり、価格をグローバル変数で定義をしようとしております。

発生している問題

現時点では、settingsに記入し

from django.conf import settings

から変数を呼び出しまして、
購入ごとに、請求書を発行するviewにて、商品価格に変数を代入しております。

しかしながら、セール時など、
価格を一時的に改定する場合にどうしたら良いのか行き詰まっております。

というのも、請求書を発行するviewが複数存在しているためです。


理想としては、
自作の管理ページがありますので、
そのページ内に価格設定フォームを作成できればと思っております。

本番環境で、毎回リポジトリをプッシュするわけにもいかないですし、、、


検索しても、djangoではなくpythonのグローバル変数ばかり出てきてしまい。
また、djangoのヒントでも、テンプレート内で表示するためのものばかりが出てきます。

大変お手数ですが、ヒントを頂けましたらとても助かります。

どうぞよろしくお願いいたします。

回答 4件
login
回答するにはログインが必要です
atnek
3年以上前

はる 様

ご回答ありがとうございます。

一応、それも考えていたのですが、
各view毎に、価格モデル.object.get(~~~)で毎回呼び出してとなると、
何か不格好かなと思って尻込みしてました。笑

ヒントを元にちょっと調べてみた所、
他サイトで恐縮ですが、

https://office54.net/python/django/django-constant-set

はる様のご教示の通り、モデルで宣言して、
上記のサイトの内容を併せれば達成できそうな感じがしてきましたので、試してみます!

1
atnek
3年以上前

はる 様

返信が大変遅くなりました。

該当の価格モデルを作成後、
自作のBaseViewを作成
価格データの呼び出し and 書き込みをする関数を定義し、
必要なviewに継承をする形で実装が完了しました!

全ページという程でもなかったので、
今回はコンテキストプロセッサーの実装は行ないませんでしたm(_ _)m

1
はる@講師
3年以上前

全ページ共通であれば、コンテキストプロセッサーを使って実装するのが自然ですね。

1
はる@講師
3年以上前

setting.pyに書くと変更したい場合に、コードを変更しないといけないですね。

価格専用のモデルをIntegerFieldで作成して、それを読み込むのがいいかと思います。

価格を変更するときは、Django管理画面から変更できます。

価格変更する画面を作成してもいいですね。