У меня есть 2 модели: Принтер и Чек
models.py
class Printer(models.Model):
name = models.CharField(...)
api_key = models.CharField(...)
check_type = models.CharField(...)
point_id = models.IntegerField()
class Check(models.Model):
printer_id = models.ForeignKey(Printer, on_delete=models.CASCADE)
type = models.CharField(...)
order = JSONField(...)
status = models.CharField(...)
pdf_file = models.FileField(...)
Я создаю API с использованием Django REST Framework.И я получаю POST-запрос, который должен выглядеть следующим образом:
request "/ create_checks /"
{
"id": 123456,
"price": 780,
"items": [
{
"name": "pizza",
"quantity": 2,
"unit_price": 250
},
{
"name": "rolls",
"quantity": 1,
"unit_price": 280
}
],
"address": "some address",
"client": {
"name": "John",
"phone": his phone
},
"point_id": 1
}
Каждая точка (место, где готовится еда) имеет два принтера.Мне нужно создать два Check объекта, чтобы один «чек» печатал для кухни, а другой для клиента.Для этого я собираюсь использовать «point_id» из запроса и создать две проверки
views.py
@api_view(['POST'])
def create_checks(request):
queryset = Check.objects.all()
orderid = #order_id from request
point = #point_id from request
jsonorder = #request body converted to json
printers = Printer.objects.filter(point_id=point)
kitchencheck = Check(printer_id=Printer.objects.get(name=printers[0].name),
type="kitchen", order=jsonorder,status="new")
clientcheck = Check(printer_id=Printer.objects.get(name=printers[1].name),
type="client", order=jsonorder,status="new")
kitchencheck.save()
clientcheck.save()
return Response({"Success": "Checks created successfully"}, status=status.HTTP_200_OK)
1.Как получить order_id и point_id из запроса?
2. Как преобразовать тело запроса в файл JSON?
3. Есть ли более простой способ сделать это?Я потратил целый день, пытаясь понять DRF, и «результат» выглядит слишком громоздким и нереальным