Эй, я новичок в Django и пишу REST API со следующей моделью.
# models.py
class Order(models.Model):
order_name = models.CharField(max_length=10, unique=True, default="")
def __str__(self):
return '{0}'.format(self.order_name).
class LineItem(models.Model):
order = models.ForeignKey(Order, on_delete=models.SET_NULL, null=True)
product = models.ForeignKey(Product, on_delete=models.SET_NULL, null=True)
class Meta:
unique_together = ('order', 'product')
def __str__(self):
return '{} - {}'.format(self.order.order_name, self.product.product_name).
# views.py
class OrderList(APIView):
def get(self, request):
orderlist = Order.objects.all()
serializer = OrderSerializer(orderlist, many=True)
return Response(serializer.data)
def post(self, request):
serializer = OrderSerializer(data=request.data)
if serializer.is_valid():
serializer.save()
return Response(serializer.data, status=status.HTTP_201_CREATED)
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
class OrderDetail(APIView):
def get_object(self, order):
try:
return Order.objects.get(order_name=order_name)
except Order.DoesNotExist:
raise Http404
def get(self, request, order_name):
snippet = Order.objects.get(order_name=order_name)
snippet = snippet.lineitem_set.all()
serializer = OrderSerializer(snippet)
return Response(serializer.data)
Поэтому я пытаюсь закодировать метод get OrderDetail (APIView), чтобы в / api / order / OrderA / я получил JSON со всеми строчными элементами в этом порядке. Я боролся некоторое время с этим сейчас. Есть предложения?
class OrderSerializer(serializers.ModelSerializer):
class Meta:
model = Order
fields = ['order_name']