Я использую django заказанную модель , чтобы заказать мой lines
. когда я перетаскиваю порядок файлов из внешнего интерфейса.
Я вызываю конечную точку, чтобы переместить файл на следующую позицию. но в ответе порядок не меняется.
здесь есть код
models.py
class Line(OrderedModel):
"""
Represents a segmented line from a document
"""
# box = gis_models.PolygonField() # in case we use PostGIS
content = models.CharField(max_length=200,null=True,blank=True)
document = models.ForeignKey(Document,
on_delete=models.CASCADE,
related_name='lines')
# text direction
order_with_respect_to = 'document'
version_ignore_fields = ('document', 'order')
external_id = models.CharField(max_length=128, blank=True, null=True)
class Meta(OrderedModel.Meta):
pass
serializers.py
class LineMoveSerializer(serializers.ModelSerializer):
index = serializers.IntegerField()
class Meta:
model = Line
fields = ('index',)
def __init__(self, *args, line=None, **kwargs):
self.line = line
super().__init__(*args, **kwargs)
def move(self):
self.line.to(self.validated_data['index'])
views.py
@action(detail=True, methods=['post'])
def move(self, request, document_pk=None, pk=None):
line = get_object_or_404(Line, pk=pk)
serializer = LineMoveSerializer(line=line, data=request.data)
if serializer.is_valid():
serializer.move()
lines = Line.objects.filter(document_part=part_pk).values('pk','order')
return Response(status=status.HTTP_200_OK,data= {'moved': lines})
else:
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)