所以我对 User 有两种不同的 API 视图,一种是超级用户可以使用的,一种是普通用户可以使用的。
目前,问题是我的超链接默认会转到 auth_users 视图,而不是用户视图。
IE
'url': 'localhost:8000/auth_users/5/'
代替
'url': 'localhost:8000/users/5/'
以下是相关文件的摘录...
* 网址 *
路由器 =
routers.SimpleRouter()
router.register(r'auth_users', UserAPI.AdminUserViewSet)
urlpatterns = patterns('',
url(r'^', include(router.urls)),
url(r'^users/?$', UserAPI.CreateOrList.as_view(), name='users'),
url(r'^users/(?P<pk>[0-9]+)/?$', UserAPI.RetrieveUpdateOrDestroy.as_view()),
...
)
* 序列化器 *
class basic_user_serializer(serializers.HyperlinkedModelSerializer):
url = HyperlinkedIdentityField(view_name='users')
class Meta:
model = User
fields = ['url', 'email', 'username']
* 意见 *
class CreateOrList(generics.GenericAPIView):
"""
List all users, or create a new one.
"""
serializer_class = create_user_serializer
class RetrieveUpdateOrDestroy(generics.RetrieveUpdateDestroyAPIView):
queryset = User.objects.all()
serializer_class = create_user_serializer
我看过文档(下面链接),但不确定这是否得到解释...... http://django-rest-framework.org/api-guide/relations.html#hyperlinkedidentityfield
谁知道怎么修它?
干杯。