【问题标题】:How to save a file generated in view to the model?如何将视图中生成的文件保存到模型中?
【发布时间】:2019-05-11 12:44:15
【问题描述】:

我有一个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 放入我的模型中,因为我总是需要生成一个新的文件名,但我知道,它可以自动完成。

您能告诉我解决这个问题的任何方法吗?

【问题讨论】:

    标签: django file-upload django-views


    【解决方案1】:

    如果我理解正确,您的问题是为每个文件创建不同的文件名。所以你可以像这样通过对象的 id 来命名文件:

    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()
    

    【讨论】:

      猜你喜欢
      • 2021-03-23
      • 2013-12-26
      • 1970-01-01
      • 2015-12-12
      • 1970-01-01
      • 1970-01-01
      • 2018-09-16
      • 2012-11-12
      • 1970-01-01
      相关资源
      最近更新 更多