私はDjangoプロジェクトでプレミアムアプリを作りたいと思っています。 ここにはアプリの関数があります。私はちょうどベストプラクティスを知っています。djangoでの一般的なデータやプロセスのベストプラクティスは何ですか?
ケース1セッションでデコレータを使用して#
''' In custom decorator '''
def get_premium_status():
def decorator(func):
def inner_decorator(request, *args, **kwargs):
#checking user status logic...
request.session['premium'] = True
return func(request, *args, **kwargs)
return wraps(func)(inner_decorator)
return decorator
''' In app '''
@get_premium_status() # using decorator with session
function premium_bbs_list() {
status = request.session["premium"]
print status
}
@get_premium_status() # using decorator with session
function premium_bbs_view() {
status = request.session["premium"]
print status
}
ケース2
function get_premium_status()
return True
function premium_bbs_list() {
status = get_premium_status()
print status
}
function premium_bbs_view() {
status = get_premium_status()
print status
}
ビューの機能#callケース1は動作しません。 b/cユーザーがログインしていなければ、Djangoセッションは機能しません。 ケース2は空想的ではありません。私はデコレータを使用したいと思います。私は最初のケースを修正する方法を知らない。
どちらが最善のケースですか?どのようにして最初のケースを修正できますか? またはこのトピックの良いベストプラクティスをお持ちの場合は、ちょうど私に事件を教えてください。
ありがとうございました。
ユーザーは強制的にログインすることができます... –