如何将TextArea中的文本转换为文件?

时间:2016-08-12 08:16:29

标签: python django django-models django-forms django-uploads

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

1 个答案:

答案 0 :(得分:3)

可能使用tempfile

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

希望这有帮助