как назвать два поля модели в одном хите API - PullRequest
0 голосов
/ 24 апреля 2020

Моя цель - получить идентификатор и создать набор запросов, отфильтрованный по идентификатору, как показано в следующем коде:

view.py

class CustomViewSet(viewsets.ModelViewSet):
    serializer_class = ProductSerializer
    queryset = product.objects.all()

def list(self, request, *args, **kwargs):
    products = self.queryset
    orders = order.objects.all()
    order_serializer = OrderSerializer(orders, many=True)
    product_serializer = self.get_serializer(products, many=True)
    custom_response = [order_serializer.data, product_serializer.data]
    return Response(custom_response, status=status.HTTP_200_OK)

urls.py

from django.urls import path, include
from list import views
from rest_framework.routers import DefaultRouter

router = DefaultRouter()
router.register(r'all', views.CustomViewSet, basename='product')

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

model.py

class product(models.Model):
    product_name = models.CharField(max_length=200)
    product_type = models.CharField(max_length=200)
    product_prize = models.IntegerField(default=0)

    def __str__(self):
        return self.product_name


class order(models.Model):
    products = models.ForeignKey(product, on_delete=models.CASCADE)
    quantity = models.IntegerField(default=0)

    def __str__(self):
        return str(self.id)

serializer.py

from rest_framework import serializers
from . models import order, product


class OrderSerializer(serializers.ModelSerializer):
    class Meta:
        model = order
        fields = '__all__'


class ProductSerializer(serializers.ModelSerializer):
    class Meta:
        model = product
        fields = '__all__'

в этом коде две модели и два класса сериализатора в одном наборе. Моя задача - как получить данные по идентификатору, используя один хит API

...