![](/img/trans.png)
[英]Enum using Django ModelField choices as string — anti-pattern?
[英]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.