我有一个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
文件已上传。
答案 0 :(得分:3)
可能使用tempfile?
import tempfile
tmp = tempfile.TemporaryFile()
tmp.write("Hello World!\n")
Job.objects.create(file=File(tmp),...)
希望这有帮助