2016-08-12 2 views
0

저는 form입니다. User은 파일을 번역하거나 첨부하기 위해 텍스트를 채울 수 있습니다. 번역 할 텍스트가 가득 차 있다면 Usertxt 파일로 업로드 된 것처럼 txt 파일을 만들고 싶습니다.TextArea의 텍스트를 파일로 변환하는 방법?

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 파일이 업로드 된 것처럼, 가짜가 보이는 있도록.

답변

2

tempfile을 사용 하시겠습니까?

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

희망이,

+0

감사를하는 데 도움이 작동하지만 난 C와 같은 문자를 통과 할 경우에 에러가 발생, ú 등이 반환 예외 값 : \t '아스키'코덱이 캐릭터에게 U를 인코딩 할 수 없습니다 '\ xfa'는 24 위 : ordinal은 범위 (128)에 없습니다. 나는 tmp.write (unicode (cleaned_data_job_creation_form.get ('text_to_translate'))))를 시도했다. 그러나 그것은 같은 오류이다. –

+1

시도해보십시오. http://stackoverflow.com/questions/6048085/writing-unicode-text-to-a-text-file – pleasedontbelong

관련 문제