python-3.x - DRF新手 - 陷入小错误请协助
问题描述
我创建了 1 个 API,它从各个方面都可以正常工作。我创建了第二个 API 的 DRF 标题标题,显示了我做错的旧 API 的标题,请提供帮助。
序列化程序.py
from rest_framework import serializers
from .models import Brand, Category
class BrandSerializer(serializers.ModelSerializer):
class Meta:
model = Brand
fields = (
'id',
'name',
'slug',
'icon',
'featured_image',
'url'
)
class CategorySerializer(serializers.ModelSerializer):
class Meta:
model = Category
fields = (
'id',
'name',
'slug',
'featured_image',
)
产品.url
router = routers.DefaultRouter()
router.register(r'', BrandViewSet)
router.register(r'', CategoryViewSet)
urlpatterns = [
path('', include(router.urls)),
]
产品视图
class CategoryViewSet(viewsets.GenericViewSet, mixins.RetrieveModelMixin, mixins.ListModelMixin):
"""
API endpoint that allows sites to be viewed or edited
"""
queryset = Category.objects.all()
serializer_class = CategorySerializer
没有错误,但是当我运行 API url 时在浏览器中显示品牌列表而不是类别列表,
解决方案
问题是您将视图注册到同一端点。所以它解决了它找到的第一个。
所以对不同的端点进行注册,如下所示:
router = routers.DefaultRouter()
router.register(r'brands', BrandViewSet)
router.register(r'categories', CategoryViewSet)
urlpatterns = [
path('', include(router.urls)),
]
因此,您可以通过以下方式访问品牌127.0.0.1:8000/brands
和类别127.0.0.1:8000/categories
推荐阅读
- splunk - 如何使用 REX 命令提取 splunk 中的多个字段?
- c# - 如何在 C# 中或使用 Windows 命令终止 RabbitMQ 连接?
- javascript - TypeError:无法读取未定义的属性“rtl”
- c - 计数直到某个数字向下并通过递归备份
- javascript - 数据库写入的块序列化
- facebook-ads-api - 我们如何使用 Python SDK 访问 Facebook Marketing API 中的 Ads Action Stats 列表?
- c# - 无法加载文件或程序集 'Microsoft.Xrm.Sdk,版本 = 9.0.0.0
- r - 如何将相关检验的 p 值和 lm 的 R² 添加到散点图?
- reactjs - 从 /src 导入反应模块而不是 node_modules
- sql - 更换托架空间