2016-03-29 5 views
0

У меня есть класс:Джанго FileField, неспособный загрузить

class Course(models.Model): 
    name = models.CharField(
     max_length=255, 
     ) 
    upload = models.FileField(upload_to='courses/') 

И когда пользователь добавляет новый курс это побуждает меня ввести название и выбрать файл .. После того, как я введите название и выберите файл, появится имя файла. Когда я нажимаю кнопку Сохранить, файл имя и пропадает я получаю сообщение «Это поле является обязательным» Вот мой шаблон:

<form action="{% url "courses-new" %}" method="POST"> 
    {% csrf_token %} 
    <ul> 
    {{ form.as_ul }} 
    </ul> 
    <input id="save_course" type="submit" value="Save" /> 
</form> 

<a href="{% url "courses-list" %}">back to list</a> 
+0

, пожалуйста, покажите свои виды.py и forms.py. – v1k45

ответ

3

Вы должны установить форму ENCTYPE в multipart/form-data. Как это:

<form action="{% url "courses-new" %}" method="POST" enctype="multipart/form-data"> 

От django-docs:

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

+0

Это сработало, теперь я хочу, когда пользователь нажимает «посмотреть» рядом с названием курса, чтобы показать загруженный файл. Это, как я stareted: класс DetailCourseView (DetailView): \t модель = курс \t template_name = 'Конечно/course_view.html' \t поля = '__all__' ...... и это мой "индекс" вид ...

    {% для курса object_list%}
  • {{}} конечно \t (edit) \t (delete) \t (view)
  • {% endfor%}
ssapp

+0

DetailView не имеет атрибута с именем 'fields'. Вы должны удалить его :) – v1k45

+0

Thx, но это не отвечает на мой второй вопрос .. В ListCourseView я получаю список всех курсов и рядом с ним просматриваю, редактирую и удаляю ссылки, что я хочу сделать, когда some1 нажимает на просмотр, чтобы открыть файл который был загружен на этот курс. До сих пор clciking на виду я получаю:/course/view/34/где 34 - id курса (pk). Итак, как я могу открыть свой загруженный файл непосредственно при нажатии на «просмотр»? Что мне нужно делать в Class DetailCourseView и что в курсе course_view.html? Ty заранее – ssapp

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