我目前正在尝试使用fat model, thin view
模式,将几乎所有逻辑移动到模型方法。
在执行此操作时,我不断发现自己从视图向模型方法发送request
个对象:
model_method(request)
并以下列方式使用它:
def model_method(self, request):
user_id = request.user.id
user_type = request.user.__class__.__name__
...
这是个好主意吗?或者我应该将我想要的请求对象发送到方法,而不是整个对象,如下所示:
user_id = request.user.id
user_type = request.user.__class__.__name__
model_method(user_id, user_type)
正确的方法是什么?
答案 0 :(得分:0)
@knbk作为评论发布的答案:
一旦开始传递仅用于访问一个或两个属性的请求,就将其视为God对象。当您只需要一个User实例时,您将在请求对象和您的方法之间引入不必要的紧密耦合。稍后,当您实际上没有请求对象时,可能需要使用用户对象调用此方法。在其他情况下,您可能需要请求(例如,访问会话或设置Cookie),因此传递请求是唯一有意义的解决方案