Я не могу загружать файлы во вкусный пирог - PullRequest
0 голосов
/ 18 июня 2020

my models.py

class Payment(models.Model):
    paid_by = models.ForeignKey(settings.AUTH_USER_MODEL,
                            on_delete=models.PROTECT,
                            related_name="payment_history"
                            )
    paid_at = models.DateTimeField(auto_now_add=True)
    voucher = models.FileField(upload_to=voucher_directory_path,
                           null=True, blank=True)

my resource.py

class PaymentResource(ModelResource):
    class Meta:
        allowed_methods = ['get', 'post']
        queryset = Payment.objects.all()
        resource_name = 'payment'
        excludes = ['paid_by',]
        authentication = OAuthAuthentication()
        authorization = Authorization()

Примечание. OAuthAuthentication () - это моя настраиваемая проверка подлинности. Я получаю эту ошибку

django.http.request.RawPostDataException: You cannot access body after reading from request's data stream

то, что я пробовал, комментирует, что OAuthAuthentication () не работает, а также пытается добавить класс ниже, также не работает, добавляя тип содержимого: application / json или multiform / Заголовок данных формы не работает. А также попытка добавить класс ниже в мой ресурс модели также не работает для меня.

class MultiPartResource(object):
    def deserialize(self, request, data, format=None):
        if not format:
            format = request.Meta.get('CONTENT_TYPE', 'application/json')
        if format == 'application/x-www-form-urlencoded':
            return request.POST
        if format.startswith('multipart'):
            data = request.POST.copy()
            data.update(request.FILES)
            return data
        return super(MultiPartResource, self).deserialize(request, data, format)

И добавил в свой ресурс

class PaymentResource(MultiPartResource, ModelResource):
    #above code here
    pass

Я что-то пропустил? впервые на вкусныйp ie

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...