Мне нужно использовать Django Rest Framework для разработки формы, которая принимает 2 ввода, идентификатор клиента и номер места, и эта форма должна быть ограничена 10 клиентами. Мой вывод JSON должен иметь идентификатор клиента, номер места, customer_occupancy (который равен 2 * customer_id) и общую занятость клиента (которая является суммой всех значений customer_occupancy, введенных до этого момента). Я добавил свой код для models.py и views.py ниже. Я понятия не имею, как обеспечить, чтобы в форме не было более одного поля, для которого необходимо ввести значение (номер места), и почему queryset.update () не приводит к каким-либо изменениям в выводе. Любая помощь для решения этой проблемы будет высоко ценится.
models.py:
from django.db import models
class Hero(models.Model):
seat_number = models.CharField(max_length=160, default='No Comment')
customer_occupancy = models.IntegerField(default = 0)
total_cust_occupancy = models.IntegerField(default = 0)
def __int__(self):
return self.id
views.py:
from django.shortcuts import render
from rest_framework import viewsets
from .serializers import HeroSerializer
from .models import Hero
global total
total = 0
class HeroViewSet(viewsets.ModelViewSet):
global total
queryset = Hero.objects.all().order_by('id')
for idx, i in enumerate(queryset):
queryset[idx].customer_occupancy = 2*int(queryset[idx].id)
total += queryset[idx].customer_occupancy
queryset[idx].total_customer_occupancy = total
print(queryset[idx].customer_occupancy)
print(total)
print(queryset[idx].total_customer_occupancy)
queryset.update()
serializer_class = HeroSerializer
serializers.py:
from rest_framework import serializers
from .models import Hero
class HeroSerializer(serializers.HyperlinkedModelSerializer):
class Meta:
model = Hero
fields = ('id', 'seat_number', 'customer_occupancy', 'total_customer_occupancy')