2015-10-23 4 views
0

Я пытаюсь загрузить файл в django.FileUpload не работает в Django

Это позволяет мне добавить файл в форму и отправлять без ошибок, но ничего не сохраняется. Я использую Джанго-хрустящей-форм

models.py

class Upload(models.Model): 
    upload = models.FileField(upload_to='.') 

views.py

class UploadsView(UpdateView): 
    form_class = UploadForm 
    template_name = 'upload.html' 
    model = Upload 

forms.py

class UploadForm(forms.ModelForm): 
    def __init__(self, *args, **kwargs): 
     super(UploadForm, self).__init__(*args, **kwargs) 

    class Meta: 
     model = Upload 
     fields = ('upload',) 

settings.py

MEDIA_ROOT = os.path.join(BASE_DIR, '..', 'media') 

MEDIA_URL = '/media/' 

form.html

<form method="POST" action="">{% csrf_token %} 
     {{ form|crispy }} 
      <input class="btn btn-primary" type="submit" value="Submit" /> 
      <a href="/home"><button type="button" class="btn btn-danger">Cancel</button></a> 
</form> 
+0

Просьба указать точный медиа-корень как/home/User/project/static/media –

+0

Можете ли вы разместить свой шаблон html, где отображается форма? – solarissmoke

+0

Я только что использовал тег '{{form | crispy}}' в моей форме – user3972986

ответ

1

Вы должны изменить тэг формы:

<form method="POST" action="" enctype="multipart/form-data"> 

От documentation:

Обратите внимание, что request.FILES будет содержать только данные, если метод запроса был POST и <form>, который отправил запрос, имеет атрибут enctype="multipart/form-data". В противном случае request.FILES будет пустым.

+0

совершенное спасибо. Не знаю, как я пропустил это из документов. – user3972986

+0

Единственная причина, по которой я мог помочь, заключалась в том, что я буквально исправил ту же проблему в проекте, над которым я работаю. – solarissmoke

Смежные вопросы