Форма с загрузкой изображения не работает в Django
Я пытаюсь заставить эту форму работать, но мне кажется, что я чего-то не понимаю. Вот что я имею на данный момент. Когда я отправляю форму, ничего не происходит, нет сообщения об ошибке, просто пустая форма.
views.py вот мой файл views. В нем есть только один вид
def add_book_view(request):
if request.method == 'POST':
form = AddBookForm(request.POST, request.FILES)
if form.is_valid():
form.save()
return redirect('books:book_list')
else:
form = AddBookForm()
return render(request, 'settings/add_book.html', {'form' : form})
form вот моя форма. Я удалил css, потому что у меня слишком много кода и недостаточно "описания". Я действительно пытаюсь решить эту проблему.
<form method="POST" enctype="multipart/form-data">
{% csrf_token %}
Title:
<input class="settings-form-input" type="text" name="title" maxlength="256"
required="" id="id_title">
Author(s):
<input class="settings-form-input" type="text" name="authors" maxlength="256"
required="" id="id_authors">
Genre:
<select name="genre" id="id_genre">
<option value="0" selected="">None</option>
<option value="1">Action-Adventure</option>
<option value="2">Autobigraphy</option>
<option value="3">Biography</option>
etc...
</select>
<br/>
Book Cover:
<input type="file" name="book_cover" accept="image/*" required="" id="id_book_cover">
<br/><br/>
Description:
<textarea class="settings-form-textarea" name="description" required=""
id="id_description"></textarea>
<input type="hidden" name="added_by" id="id_added_by" value="{{ user.first_name}}
{{ user.last_name }}">
<input type="submit" class="form-button" value="Add Book">
</form>
models.py Это мой файл models. Эта форма не позволяет мне написать сообщение, потому что она говорит, что у меня слишком много кода и недостаточно деталей, поэтому сейчас я просто пытаюсь вставить больше "деталей".
class Book(models.Model):
title = models.CharField(max_length=256)
authors = models.CharField(max_length=256, default=None)
GENRE = [
('0', 'None'),
('1', 'Action-Adventure'),
('2', 'Autobigraphy'),
('3', 'Biography'),
('4', 'Classic'),
('5', 'Drama'),
('6', 'Fantasy'),
('7', 'Fiction'),
('8', 'Historical'),
('9', 'Mystery'),
('10', 'Non-Fiction'),
('11', 'Romance'),
('12', 'Science-Fiction'),
]
genre = models.CharField(max_length=2, choices=GENRE, default='0')
book_cover = models.ImageField(upload_to='covers/', default=None)
description = models.TextField(default=None)
added_by = models.CharField(max_length=256, default=None)
date_added = models.DateTimeField(default=timezone.now)
def __str__(self):
return self.title
settings.py
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
MEDIA_URL = '/media/'
В моей среде установлена подушка. Здесь говорится, что я не могу опубликовать сообщение без добавления дополнительной информации, но я не знаю, что сказать. На самом деле у меня все работает, и я не знаю о каких-либо изменениях, но теперь это не работает. Так что это должно быть близко.