0

場合。以下のコードに次の動作を変更して追加したい (これはコンテキスト プロセッサです)。

ユーザーが認証されているかどうかを確認した後、最後に残高が更新された時間を確認します (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 から来ました。私はsetgetをしたいです。それは私にとってより理にかなっています。存在しない場合はバランスを取ります。それ以外の場合は、新しいものを作成します。

コンストラクター メソッド: 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???
4

1 に答える 1