有两个表user, phone
,它们通过中间表owner
链接。这里的目标是使用Rest API从特定用户获取所有电话,即 http://127.0.0.1/users/alice/phones/
。使用Django的REST API获取关系属性
我使用ModelSerializer
作为串行器,ViewSet
作为视图。请让我知道如何做到这一点?我不知道如何路由/users/user_name/phones/
从特定用户获取手机。 谢谢。
代码片段:
class UserSerializer(serializers.ModelSerializer):
class Meta:
model=User
class PhoneSerializer(serializers.ModelSerializer):
class Meta:
model=Phone
class OwnerSerializer(serializers.ModelSerializer):
class Meta:
model=Owner
depth=1
// views
class UserViewSet(viewsets.ModelViewSet):
queryset=User.objects.all()
serializer_class=UserSerializer
class PhoneViewSet(viewsets.ModelViewSet):
queryset=Phone.objects.all()
serializer_class=PhoneSerializer
....
是否使用这个URL很重要:'/ users/user_name/phones /'或者你可以使用这个'/ phones /?user = user_name'? –
/users/user_name/phones /和/ phones /?user = user_name都可以。前者更像休息风格。 – frogcd