0

我有一个form可以User填写文本以翻译或附加文件的地方。如果要翻译的文本已填写,我想从中创建一个 txt 文件,这样看起来就像User上传了一个txt文件。

    if job_creation_form.is_valid():
            cleaned_data_job_creation_form = job_creation_form.cleaned_data
            try:
                with transaction.atomic():
                        text = cleaned_data_job_creation_form.get('text_to_translate')
                        if text:
                           cleaned_data_job_creation_form['file']=create_txt_file(text)

                        Job.objects.create(
                                customer=request.user,
                                text_to_translate=cleaned_data_job_creation_form['text_to_translate'],
                                file=cleaned_data_job_creation_form['file']....
                                )
            except Exception as e:
                RaiseHttp404(request, 'Something went wrong :(')
            return HttpResponseRedirect(reverse('review_orders'))

我想创建一个txt像这样的文件:

with open('name.txt','a') as f:
    ...

但是可能会有很多问题 - 保存文件的目录,上传自动处理的文件的名称等。

你知道更好的方法吗?

简而言之:

如果要翻译的文本已填写,请假装它看起来像txt文件已上传。

4

1 回答 1

3

也许使用临时文件?

import tempfile
tmp = tempfile.TemporaryFile()
tmp.write("Hello World!\n")
Job.objects.create(file=File(tmp),...)

希望这可以帮助

于 2016-08-12T08:25:21.930 回答