Django Rest Frameworkを使用して同じオブジェクトに対して異なるビューセットを定義する際に問題が発生しています。以下は、DRFクイックスタートに基づいて、問題を再現するための最小限の例です。私はPython 3.5と最新のDRFを使用しています。Django Rest Framework同じオブジェクトに複数のビューセットとルータがある場合
チュートリアル/クイックスタート/ serializers.py
from django.contrib.auth.models import User
from rest_framework import serializers
class UserSerializer(serializers.ModelSerializer):
class Meta:
model = User
fields = ('url', 'username', 'email')
class UserMinimalSerializer(serializers.ModelSerializer):
class Meta:
model = User
fields = ('url', 'username')
チュートリアル/クイックスタート/ views.py
from django.contrib.auth.models import User
from rest_framework import viewsets
from tutorial.quickstart.serializers import UserSerializer, UserMinimalSerializer
class UserViewSet(viewsets.ModelViewSet):
queryset = User.objects.all().order_by('-date_joined')
serializer_class = UserSerializer
class UserMinimalViewSet(viewsets.ModelViewSet):
queryset = User.objects.all().order_by('-date_joined')
serializer_class = UserMinimalSerializer
チュートリアル/ urls.py
.../users-minimal/
へ
HTTP 200 OK
Allow: GET, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept
{
"users": "http://127.0.0.1:8000/users-minimal/",
"users-minimal": "http://127.0.0.1:8000/users-minimal/"
}
注users
とusers-minimal
ポイントの両方:サーバを実行してルートを取得するとき、あなたはで終わります。 http://HOST:PORT/users/
にアクセスするとき
はまた、あなたが得る:
HTTP 200 OK
Allow: GET, POST, OPTIONS
Content-Type: application/json
Vary: Accept
{
"count": 2,
"next": null,
"previous": null,
"results": [
{
"url": "http://127.0.0.1:8000/users-minimal/2/",
"username": "user2",
"email": "[email protected]"
},
{
"url": "http://127.0.0.1:8000/users-minimal/1/",
"username": "user1,
"email": "[email protected]"
}
]
}
注URLは.../users-minimal/
を指します。
最後の質問:私の質問はthis oneと多少似ていますが、提案された解決策は私のためには機能しませんでした。