想問問大家在 Django+DRF 的開發框架下,涉及多表的資料庫相關操作在哪層做?

Django zhoudaiyu • at 2021-04-15 14:06:34 • 24 Views

當 ModelViewSet 自帶的新增、修改、刪除方法不能滿足繼承 ModelViewSet 的檢視的需求時,例如新增、更新涉及到多個表時。這樣可以選擇在檢視( views )、序列化器( serializers )或者模型( models )裡重寫這些方法。現在我們公司的現狀是在哪層重寫的都有,沒有啥規範。想問問這個東西有什麼最佳實踐嗎?

Total: 4
  • IurNusRay 2021-04-14 17:23:04
    我一般是在序列化器的 create/update 方法中來寫,在檢視中寫需要寫一些重複程式碼,在模型中寫可能需要將請求上下文傳入,所以感覺在序列化器中寫比較簡潔
  • Alexf4 2021-04-14 17:24:04
    [best-pratices]( https://lincolnloop.com/django-best-practices/)
    我一般業務邏輯都是放 model 層,view 層大多數做判斷之類的。
    但是留意到題主可能更多的問題是公司團隊內部的不統一吧。。試試主動 push 下程式碼規範統一?
  • zxzflower 2021-04-14 21:18:42
    我們是全部放在一個 handler 層去做 view 只做 http 相關的操作
  • dayeye2006199 2021-04-15 07:21:58
    可以放在 serializer 裡面 override create 和 update 方法。
    或者放在 model 層,override model manager 的型別。

    兩個都可以,第二個方案程式碼更乾淨一些。
Add a reply
For Commenting you need to Login. If you dont have a Account you need to Register.