如何将文本从 TextArea 转换为文件?

How to convert text from TextArea to file?

我有一个 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 文件已上传。

也许使用 tempfile

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

希望对您有所帮助