我們的應用程序將用戶模型中的is_active
字段設置爲False
以表示已刪除的用戶。
從每次訪問用戶表中排除已刪除用戶(where is_active=False
)的最佳做法是什麼?
請考慮以下事項:
1.該應用程序已經編寫完畢,因此我們希望儘可能最少更改代碼。
2.該應用程序使用:request.user
,get_object_or_404()
,當然還有User.objects
,所以解決方案必須考慮所有這些。Django auth_user - 排除非活動用戶的最佳做法
從我所做的研究中,我發現:
1.代理模式:將迫使我在代碼中進行很多更改;我不知道它如何與request
和get_object_or_404()
一起工作。
2. contribute_to_class
:它可以用來覆蓋objects
經理或只是添加一個新的?它安全嗎?
3.中間件更改:我不想進入此。對我來說太冒險了。
有沒有一個優雅的方式來做到這一點?
我想你可以爲你的用戶模型定義一個自定義的默認管理器。看看django文檔。 – Jingo 2012-07-05 13:11:54
嗨。我確實查看了文檔。他們沒有說如何覆蓋用戶模型的默認管理器,僅針對其他用戶(您需要在模型類中指定自定義管理器,而在用戶模型中則沒有) – user1102018 2012-07-05 13:29:38