мы изменили часть кода, как в Model.py
class Attendance(models.Model):
present = EnumField(choices=['Yes', 'No'])
student = models.ForeignKey(User, on_delete=models.CASCADE)
schedule = models.ForeignKey(Schedule, on_delete=models.CASCADE)
def __str__(self):
return self.present
В Serializer.py
[ 1116]class ScheduleSerializers(serializers.ModelSerializer):
class Meta:
model = Schedule
fields = "__all__"
class UserPartialSerializers(serializers.ModelSerializer):
class Meta:
model = User
fields = ('id', 'first_name')
class AttendanceSerializers(serializers.ModelSerializer):
class Meta:
model = Attendance
fields = '__all__'
class AttendanceScheduleSerializers(serializers.ModelSerializer):
schedule = ScheduleSerializers(many=False)
student = UserSerializer(many=False)
class Meta:
model = Attendance
fields = ('id', 'present', 'schedule', 'student',)
Самое необходимое - это View.py, где фактические данные сериализуются в требуемом формате, который мы на самом деле хотели
[1118 ]class AttendanceView(APIView):
def get(self, request, format=None):
a_list = Attendance.objects.all()
serializer = AttendanceScheduleSerializers(a_list, many=True)
return Response(serializer.data)
def post(self, request, format=None):
present = request.data.get("present")
schedule = request.data['schedule']['id']
student = request.data['student']['id']
data = {'student': student, 'schedule': schedule, 'present': present}
serializer = AttendanceSerializers(data=data)
if serializer.is_valid():
serializer.save()
return Response(serializer.data, status=status.HTTP_201_CREATED)
from api.serializers import UserSerializer,AttendanceSerializer, ScheduleSerializer, AttendanceScheduleSerializer
Использовать glutWarpPointer (x, y)
, где x
и y
(оба int
s) указаны в пикселях (относительно происхождения окна). Например:
glutWarpPointer(windowWidth / 2, windowHeight / 2);