我有一个 django oscar 应用程序,我使用 django-oscarapi 作为我的自定义 API。 oscarapi 中缺少一些东西,例如类别和促销,但我已经能够使用 django-restframework 来创建类别 API,但我现在面临的挑战是如何将其添加到 API-ROOT。这是我用于渲染类别的代码
customapi序列化器类
class CategorySerializer(serializers.ModelSerializer):
class Meta:
model = Category
fields = ('id', 'numchild', 'name', 'description', 'image', 'slug')
Views
class CategoryList(generics.ListAPIView):
queryset = Category.objects.all()
serializer_class = CategorySerializer
class CategoryDetail(generics.RetrieveAPIView):
queryset = Category.objects.all()
serializer_class = CategorySerializer
自定义API/urls.py
url(r'^caty/$', CategoryList.as_view(), name='category-list'),
url(r'^caty/(?P<category_slug>[\w-]+(/[\w-]+)*)_(?P<pk>\d+)/$',
CategoryDetail.as_view(), name='category'),
提前致谢
您必须覆盖根视图oscarapi
。也许有一种方法可以部分覆盖该模块,但我没有成功。
要覆盖的模块:https://github.com/django-oscar/django-oscar-api/blob/master/oscarapi/views/root.py
在你的项目中添加一个文件yourApp/api/views/root.py
并粘贴上面源文件的内容。
然后,您可以通过向 PUBLIC_APIS 或 ADMIN_APIS 函数添加元组来添加端点。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)