Задать вопрос

Как в django rest framework сделать файловое поле?

Здравствуйте, возникла проблема, гугл не помог (
Есть модель, с файлом, и я пытаюсь грузить туда файл.
class File(models.Model):
    owner = models.ForeignKey('auth.User', verbose_name=u'Владелец')
    name = models.CharField(verbose_name=u'Название', max_length=1000, null=True, blank=True)
    file = models.FileField(verbose_name=u'Документ', upload_to=get_file_path)

class FileSerializer(serializers.ModelSerializer):
    owner = UserSerializer(read_only=True)
    file = serializers.FileField()

    class Meta:
        model = File
        fields = ('owner', 'file') 


class ViewSet(viewsets.GenericViewSet):
    @list_route(methods=['post'])
    def load_file(self, request):
        file_tmp = request.data.get('file')
        if not file_tmp:
            return Response("Нет файла, или неправильный формат", status=status.HTTP_400_BAD_REQUEST) 

        serializer = FileSerializer(request.user, data=request.data)
        if serializer.is_valid():
            serializer.save()
            return Response(serializer.data, status=201)
        return Response(serializer.errors, status=400)

Проблема в ошибке:
InMemoryUploadedFile object has no attribute url
  • Вопрос задан
  • 419 просмотров
Подписаться 4 Оценить 1 комментарий
Решения вопроса 1
MAKAPOH
@MAKAPOH
многостаночник
Подозреваю что вам надо для вашего ViewSet прописать соответствующий парсер - multipart или fileupload.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы