簡體   English   中英

將請求對象發送到Django中的模型方法是否是反模式?

[英]Is it an anti-pattern to send a request object to a model method in Django?

我目前正在嘗試使用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)

正確的方法是什么?

@knbk的回答是他發表的評論:

一旦開始傳遞僅用於訪問一個或兩個屬性的請求,您就將其視為God對象。 當您只需要一個User實例時,您將在請求對象和您的方法之間引入不必要的緊密耦合。 稍后,當您實際上沒有請求對象時,可能需要使用用戶對象調用此方法。 在其他情況下,您可能需要該請求(例如,訪問會話或設置cookie),因此傳遞請求是唯一有意義的解決方案

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM