Создание CSV из данных запроса и сохранение его в поле модели - Django - PullRequest
0 голосов
/ 06 мая 2020

У меня есть модель, которая включает текстовое поле и поле файла. Пользователь может либо загрузить файл csv, либо текст, который я должен проанализировать в csv и сохранить в поле файла. Это выглядит примерно так:

class UserUpload(models.Model):
     ......
     ......
     filefield = file_uploaded = models.FileField(upload_to='media/', validators= 
            FileExtensionValidator(allowed_extensions=['csv'])], blank=True, null=True)

     datafield = models.TextField(blank=True, null=True)

В сериализаторе

import csv
class UserUploadSerializer(serializers.ModelSerializer):
      .....

      def csv_parser(self, datastream):
          with open('test,csv', 'w') as csv_file:
               data_writer = csv.write(csv_file)
               for x in datastream:
                    data_writer.writerow(x)
               return csv_file


      def create(self, validated_data):
           if 'datafield' in validated_data:
               output_file = self.csv_parser(validated_data['data_uploaded'].split(", "))
               return UserUpload.objects.create(filefield=output_file, **validated_data)
           else:
               return UserUpload.objects.create(**validated_data)

При работе с этим logi c я всегда получаю сообщение об ошибке: Я подумал, что это может быть связано с классом Django FileContent, но когда я попробовал это, ничего не вышло. Любая помощь в том, как я могу это понять?

...