Как сохранить созданный файл с учетом модели? - PullRequest
0 голосов
/ 10 декабря 2018

У меня есть model.py:

class SomeModel(models.Model):
    name = models.CharField(max_length = 30)
    file_field = models.FileField(upload_to=os.path.join(settings.MEDIA_ROOT,'strategies/'))

и view.py

def test(request):
    csv = get_csv(args)

Моя функция get_csv () возвращает строку csv.И мне нужно сохранить это в моей модели.Я не хочу создавать файл и помещать существующий URL в мою модель, потому что мне всегда нужно будет сгенерировать новое имя файла, но я знаю, это можно сделать автоматически.

Не могли бы вы дать советмне любой способ решить эту проблему?

1 Ответ

0 голосов
/ 10 декабря 2018

Если я правильно понял, ваша проблема заключается в создании разных имен файлов для каждого файла.Таким образом, вы можете назвать файл по идентификатору объекта следующим образом:

def test(request):
    csv = get_csv(args)
    id = SomeModel.objects.latest('id').id + 1
    csv_file = open("file_" + str(id) + ".csv", w)
    csv_file.write(csv)
    sm = SomeModel.objects.create(name="foo", file_field=csv_file)
    csv_file.close()
...