2 つのアプリを含むプロジェクトがあります。
- アカウント、
- クラス。
アカウント アプリでは Django のグループ モデル (アカウントのアクセス許可用) を使用し、クラス アプリではグループという名前の別のモデルを使用しています (ただし、学生のグループとして解釈する必要があります)。
私の url.py は次のようになります。
(...)
from rest_framework import routers
from .accounts import views as accounts_views
from .classes import views as classes_views
router = routers.DefaultRouter()
(...)
router.register(r"groups", accounts_views.GroupViewSet)
router.register(r"classes/groups", classes_views.GroupViewSet)
(...)
しかし、期待どおりに機能していません。/api ページは次のようになります。
HTTP 200 OK
Allow: GET, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept
{
(...)
"groups": "http://127.0.0.1:8000/api/classes/groups/",
"classes/groups": "http://127.0.0.1:8000/api/classes/groups/",
(...)
}
したがって、どちらも同じアドレスをターゲットにしていますが、これは私が望んでいるものではありません。管理ページはうまく機能します (アカウントのグループとクラスのグループを編集できます)。
助言がありますか?
編集:
以下のようにurl.pyの行の1つを変更します(以下の回答の1つで提案されているように):
router.register(r"classes_groups", classes_views.GroupViewSet)
/api ページを次のように変更します。
HTTP 200 OK
Allow: GET, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept
{
(...)
"groups": "http://127.0.0.1:8000/api/classes_groups/",
"classes/groups": "http://127.0.0.1:8000/api/classes_groups/",
(...)
}
したがって、@argaen ソリューションは通常、この場合のソリューションではありません。