В Django не загружаются изображения с шаблона, но загружаются из админки
Код ниже. При загрузке фото по шаблону и при нажатии на кнопку Post, фото не загружается никуда, но если загрузить фото в пост из админки, то оно загрузится исправно. Помогите, пожалуйста, решить проблему. Заранее спасибо!
settings.py
STATIC_URL = '/static/'
MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
STATICFILES_DIRS = (
os.path.join(BASE_DIR, 'static'),
)
forms.py
class PostForm(forms.ModelForm):
class Meta:
model = Post
fields = ('title', 'author', 'body', 'header_image')
widgets = {
'title': forms.TextInput(attrs = {'class':'form-control'}),
'author': forms.TextInput(attrs = {'class':'form-control', 'value':'', 'id':'userid'}),
'body': forms.Textarea(attrs = {'class':'form-control'}),
}
models.py
class Post(models.Model):
title = models.CharField(max_length=200)
author = models.ForeignKey(
'auth.User',
on_delete=models.CASCADE,
)
header_image = models.ImageField(null=True, blank=True, upload_to='images/')
body = models.TextField()
def __str__(self):
return self.title
def get_absolute_url(self):
return reverse('post_detail', args = [str(self.id)])
views.py
class AddPostView(CreateView):
model = Post
form_class = PostForm
template_name = 'add_post.html'
urls.py
urlpatterns = [
...
]+ static(settings.MEDIA_URL, doument_root=settings.MEDIA_ROOT)
add_post.html
<form class = "form-group">
<form method = "POST" enctype="multipart/form-data">
{% csrf_token %}
{{ form.media }}
{{ form.as_p }}
<button formmethod="POST">Post</button>
Ответы (1 шт):
Автор решения: MrMacduckinson
→ Ссылка
Я исправил проблему, изменив данные шаблона:
<div class = "form-group">
<form method = "post" enctype="multipart/form-data">
{% csrf_token %}
{{ form.media }}
{{ form.as_p }}
<button type ="submit" formmethod="post">Post</button>
</div>
Не знаю, что из добавленного точно нужно, но теперь всё работает.