多くの場合、フォームやユーティリティ関数などでリクエストが必要です...
組み込みの辞書にリクエストを挿入するのは悪い考えですか?
つまり、このようなミドルウェアを実装するのは悪い考えですか?:
import sys
PY3 = False
if sys.version_info.major == 3:
PY3 = True
class GlobalRequestMiddleware(object):
def process_request(self, request):
if PY3:
import builtins
builtins.__dict__["request_global"] = request
else:
import __builtin__
__builtin__.__dict__["request_global"] = request
次に、次のように、フォームまたはユーティリティ関数でリクエストを使用できます。
class MyModelForm(forms.ModelForm):
class Meta:
model = MyModel
def save(self, commit=True):
obj = super(MyModelForm, self).save(commit=False)
obj.owner = request_global.user
obj.save()
return obj
または
def my_func_util():
if request_global.user.is_anonymous():
XXX
else:
YYY
「常に」は暗黙的よりも明示的であることを理解しています...しかし、それ以上の理由はありますか??