Задать вопрос

Как реализовать загрузку файлов на сервер в Django?

Необходимо реализовать загрузку файлов на сервер пользователем через форму. В документации Django на эту тему почему - то не так много информации и мне её не хватило, чтобы разобраться. Если не затруднит, то буду рад готовому простому примеру, который я уже бы переработал под свои нужды. Заранее спасибо
  • Вопрос задан
  • 6827 просмотров
Подписаться 4 Оценить Комментировать
Решения вопроса 2
zigen
@zigen
From docs:

# In forms.py...
from django import forms

class UploadFileForm(forms.Form):
    title = forms.CharField(max_length=50)
    file = forms.FileField()


Обрабатываем форму:

from django.http import HttpResponseRedirect
from django.shortcuts import render
from .forms import UploadFileForm

def upload_file(request):
    if request.method == 'POST':
        form = UploadFileForm(request.POST, request.FILES)
        if form.is_valid():
            form.save()
            return HttpResponseRedirect('/success/url/')
       return render(request, 'upload.html', {'form': form})
    else:
        form = UploadFileForm()
    return render(request, 'upload.html', {'form': form})
Ответ написан
@Chepapka Автор вопроса
Реализовал таким образом, вдруг кому пригодится

models.py:
from django.db import models

class Article(models.Model):
    file_obj = models.FileField(upload_to='media/')


views.py:
from django.shortcuts import render
from django.contrib.auth import authenticate
from django.http import HttpResponseRedirect

from .forms import ArticleForm


def Upload_file(request):
  if request.method == 'POST':
    form = ArticleForm(request.POST, request.FILES)
    if form.is_valid():
      form.save()
      return HttpResponseRedirect('/')
  else:
    form = ArticleForm()

  return render(request, 'file_upload.html', {'form': form})


forms.py:

from django.forms import ModelForm
from .models import Article

class ArticleForm(ModelForm):
  class Meta:
    model = Article
    fields = ['file_obj']
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
Не понятно как отправить или принять файл?....Гугл не помог?
Ответ написан
Rou1997
@Rou1997
Я бы сначала сделал не в Django, а потом так же, только в Django.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы