1

很多时候,您需要以表单或 util 函数等形式提出请求......

在内置字典中插入请求是一个坏主意吗?

也就是说,实现这样的中间件是不是一个坏主意?:

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

然后您可以在表单或 util 函数中使用请求,如下所示:

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

我知道“总是”比隐含更好……但是还有更多的理由吗?

4

1 回答 1

0

好的,这绝对是个坏主意

于 2013-10-14T08:02:31.567 回答