2014-11-25 66 views
0

您好,所以我的問題是,大概是最好的做法,在組織ViewSets並在Django的REST框架相應的路由器。Django的REST框架組織ViewSets和路由器

根據官方文檔,路由器應存儲在urls.py中,並且視圖集應存儲在views.py中。

我的想法是將視圖集放在單獨的文件中,例如viewsets.py,這樣我們就不會將正常的Django視圖和DRF視圖混合在同一個文件中,從而提高可讀性。

同樣會去的地方,我們會creaate文件路由器稱爲routers每個應用程序內並與主路由器的默認實例,然後註冊。

這是我的想法,但我不知道如何:(?在viewsets路由器的登記和所有的,我應該把defaultrouter中在__init__.py

1º執行此操作的正確方法

2º有更好的方法嗎?

基本上我想每個應用程序和每個應用程序的Django的意見和DRF viewsets獨立

回答

2

對於它的價值,我一直創建一個單獨的API /子目錄裏面的邏輯分離中我的Django的應用程式,以容納所有Django REST框架相關文件。這只是一種做事方式,但它有助於在應用程序內保持關注點分離。

層次結構看起來像這樣...

  • Django項目/
    • Django應用程序/
      • views.py
      • models.py
      • urls.py
      • API/
        • serializers.py
        • viewsets.py
+0

我喜歡這個主意。在哪裏以及如何添加新路線? – psychok7 2014-11-25 15:46:31

+0

我實際上一直保持我的路由器根URL配置文件中,因爲我認爲我的API網址是在根級別,但我可以看到,用於保持分離的說法。如果我們遵循標準的API命名約定/ api/v1/resource /,那麼你幾乎被卡在你的路由器的根級別。如果你想讓它們隔離,我猜在URL中可以使用/ djangoapp/api/v1/resource /。在根urlconf中,只包含/djangoapp/的yourdjangoapp.api.urls。 – 2014-11-25 16:15:23

+0

我能做到這一點,而不直接使用urls.py就像我指定的位置: https://github.com/tomchristie/django-rest-framework/issues/2136 – psychok7 2014-11-25 16:32:56