場合。以下のコードに次の動作を変更して追加したい (これはコンテキスト プロセッサです)。
ユーザーが認証されているかどうかを確認した後、最後に残高が更新された時間を確認します (Cookie の可能性があります)。過去 5 分間に更新された場合は何もしません。それ以外の場合は、通常どおり新しい残高を取得します。
def get_balance(request):
if request.user.is_authenticated():
balance = Account.objects.get(user=request.user).balance
else:
balance = 0
return {'account_balance': balance}
でも:
Django/Python の OOP についてもう少し学びたいのですが、次の使用を含めて、私の目標を達成するために例を変更できます。
プロパティ:私は Java から来ました。私はsetとgetをしたいです。それは私にとってより理にかなっています。存在しない場合はバランスを取ります。それ以外の場合は、新しいものを作成します。
コンストラクター メソッド: Python では、これをクラスに変更して init を使用する必要があると思います。
アップデート:
コンストラクトを使用するには、最初にクラスを作成する必要があると思います。Django でコンテキスト プロセッサとして使用して、次のようなことを行っても問題ないと思います。
class BalanceProcessor(request):
_balance = Account.objects.get(user=request.user).balance
@property
def get_balance(self):
return return {'account_balance': _balance}
@setter???