DRF Newbie - застрял в небольшой ошибке, любезно помочь - PullRequest
0 голосов
/ 04 июля 2019

Я создал 1 API, все работает нормально со всех концов. Я создал второй API заголовок DRF, показывающий заголовки старого API, где я делаю ошибку, любезно помогите.

serializers.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',
        )

products.url

router = routers.DefaultRouter()
router.register(r'', BrandViewSet)
router.register(r'', CategoryViewSet)

urlpatterns = [
    path('', include(router.urls)),
]

product.view

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

Нет ошибки, но в браузере, когда я запускаю URL-адрес API, вместо списка категорий отображается список брендов,

enter image description here

1 Ответ

1 голос
/ 04 июля 2019

Проблема в том, что у вас есть просмотры, зарегистрированные в одной и той же конечной точке.Таким образом, он разрешает первый найденный файл.

Так же, как и регистр для разных конечных точек, таких как:

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

...