【发布时间】:2020-10-09 10:44:34
【问题描述】:
我创建了一个博客网站,我想为每个帖子显示图像,例如 YouTube 缩略图。我在帖子类中创建了一个图像字段,但在我创建帖子时它没有将我的图像保存在媒体文件夹中。
models.py 中的帖子类:
class Post(models.Model):
name = models.CharField(default='Concert', max_length=100)
invite = models.ImageField(default='invite.jpg', upload_to='invite_pics')
date_posted = models.DateTimeField(default=timezone.now)
author = models.ForeignKey(User, on_delete=models.CASCADE)
def __str__(self):
return self.name
def get_absolute_url(self):
return reverse('post-detail', kwargs={'pk': self.pk})
这是我在 views.py 中的 CreatePost 类:
class PostCreateView(LoginRequiredMixin, CreateView):
model = Post
template_name = 'home_page/post_form.html'
fields = ['name', 'invite']
def form_valid(self, form):
form.instance.author = self.request.user
return super().form_valid(form)
我已经在 settings.py 中设置了 MEDIA_ROOT 和 MEDIA_URL:
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
MEDIA_URL = '/media/'
post_form.html:
<div class="container">
<div class="content-section">
<form method="POST">
{% csrf_token %}
<fieldset class="form-group">
<legend class="border-bottom mb-4">Create New Event</legend>
{{ form|crispy }}
</fieldset>
<div class="form-group">
<button class="btn btn-outline-info" type="submit">Post</button>
</div>
</form>
</div>
</div>
所以正如我之前所说,图像没有保存到 media/invite_pics 我该怎么办?
【问题讨论】:
-
你的模板是什么样子的?尤其是
<form>部分? -
我已经更新了代码
标签: django django-models django-forms django-views