Предполагая, что мне нужно переопределить метод обновления в DRF ModelSerializer - всякий раз, когда я запускаю PATCH для обновления логического поля с False на True, это не будет отражаться в выводе JSON. Но когда я проверяю это отражается в базе данных SQLite. Затем я запускаю PATCH или GET, чтобы снова запросить данные, только тогда изменение отобразится в выводе JSON. Почему это происходит и есть ли способ, чтобы изменение было немедленно отражено в выводе тела JSON?
Код ниже показывает урезанную версию моего класса JobSerializer.
class JobSerializer(serializers.ModelSerializer):
class Meta:
model = Job
fields = (
'slug',
'student',
'service',
'time_slots',
'tutor_accept',
)
def update(self, instance, validated_data):
instance.tutor_accept = validated_data.get('tutor_accept', instance.tutor_accept)
instance.save()
return instance
А вот и моя модель работы.
class Job(MyModel):
student = models.ForeignKey(Profile, related_name='jobs', on_delete=models.CASCADE)
service = models.ForeignKey(Service, related_name='jobs', on_delete=models.CASCADE)
time_slots = models.ManyToManyField(Schedule)
tutor_accept = models.BooleanField(default=False)
Вот мой вид JobDetail:
class JobDetail(generics.RetrieveUpdateDestroyAPIView):
queryset = Job.objects.all()
serializer_class = JobSerializer
permission_classes = (permissions.IsAuthenticated,)
lookup_field = 'slug'
Базовый класс MyModel
class MyModel(models.Model):
slug = models.UUIDField(primary_key=True, default=uuid.uuid4, unique=True, editable=False)
class Meta:
abstract = True