Ich arbeite an einem Web. User
kann eine Datei hochladen. Diese Datei befindet sich im Format docx
. Nachdem er eine Datei hochgeladen hat und auswählt, in welche Sprachen er die Datei übersetzen möchte, möchte ich ihn auf eine andere Seite umleiten, wo er Preise für Übersetzungen sehen kann. Die Preise hängen von der jeweiligen Sprache und Anzahl der Zeichen in der Datei docx
ab.Wie kann man nach dem Upload in Django auf die Datei zugreifen?
Ich kann nicht herausfinden, wie mit der hochgeladenen Datei umzugehen. Ich habe eine Funktion, die den Pfad zur Datei abruft und eine Anzahl von Zeichen zurückgibt. Nach dem Hochladen der Datei und dem Klicken auf "Senden" möchte ich diese Funktion aufrufen, damit ich eine neue Seite mit geschätzten Preisen rendern kann.
Ich habe gelesen, dass ich temporary_file_path
auf request.FILES['file']
nennen können, aber es wirft
‚InMemoryUploadedFile‘ Objekt hat kein Attribut ‚temporary_file_path‘
Ich möchte herausfinden, wie viele Zeichen Datei hochgeladen enthält und sendet es in einer Anfrage an eine andere Ansicht - /order-estimation
.
VIEW:
def create_order(request):
LanguageLevelFormSet = formset_factory(LanguageLevelForm, extra=5, max_num=5)
language_level_formset = LanguageLevelFormSet(request.POST or None)
job_creation_form = JobCreationForm(request.POST or None, request.FILES or None)
context = {'job_creation_form': job_creation_form,
'formset': language_level_formset}
if request.method == 'POST':
if job_creation_form.is_valid() and language_level_formset.is_valid():
cleaned_data_job_creation_form = job_creation_form.cleaned_data
cleaned_data_language_level_formset = language_level_formset.cleaned_data
for language_level_form in [d for d in cleaned_data_language_level_formset if d]:
language = language_level_form['language']
level = language_level_form['level']
Job.objects.create(
customer=request.user,
text_to_translate=cleaned_data_job_creation_form['text_to_translate'],
file=cleaned_data_job_creation_form['file'],
short_description=cleaned_data_job_creation_form['short_description'],
notes=cleaned_data_job_creation_form['notes'],
language_from=cleaned_data_job_creation_form['language_from'],
language_to=language,
level=level,
)
path = request.FILES['file'].temporary_file_path
utilities.docx_get_characters_number(path) # THIS NOT WORKS
return HttpResponseRedirect('/order-estimation')
else:
return render(request, 'auth/jobs/create-job.html', context=context)
return render(request, 'auth/jobs/create-job.html', context=context)
Haben Sie dieses https://docs.djangoproject.com/en/1.9/topics/http/file-uploads/ gelesen? Hier mehr Beispiele http://stackoverflow.com/questions/5871730/need-a-minimal-django-file-upload-beispiel – trinchet