Через интерфейс я позволяю пользователям редактировать сообщения с помощью функции автосохранения. Каждое обновление поста сохраняется в БД. При редактировании экземпляр последнего сохранения обновляется с помощью запроса PUT
.
Объем пространства, который он потребляет, однако довольно нелепый. Не обращая внимания, если обновленная строка становится длиннее или короче, пространство только увеличивается. Мой локальный файл SQLite теперь имеет более 500 МБ.
Соответствующее представление в django является подробным, но довольно стандартным, я бы сказал:
class PostDetail(APIView):
permission_classes = [
permissions.IsAuthenticatedOrReadOnly,
IsOwnerOrReadOnly,
IsOwnerOrPublishedOnly]
def get_queryset(self):
queryset = Post.objects.all()
is_published = self.request.query_params.get('is_published', None)
if is_published and is_published == 'false':
queryset.filter(is_published=False)
if is_published and is_published == 'true':
queryset.filter(is_published=True)
return queryset
def get_object(self):
obj = get_object_or_404(self.get_queryset(), uuid=self.kwargs.get('post_uuid', None))
self.check_object_permissions(self.request, obj)
return obj
def put(
self,
request,
post_uuid,
format=None):
post = self.get_object()
serializer = PostUpdateSerializer(post, data=request.data)
if serializer.is_valid():
serializer.save()
return Response(serializer.data, status=status.HTTP_200_OK)
return Response(serializer.errors, status=status.HTTP_500_INTERNAL_SERVER_ERROR)
Я не могу на самом деле обернуть голову вокруг как отладить это? Вот почему я обращаюсь к ТАК. Любые советы?