【发布时间】:2019-06-04 11:56:23
【问题描述】:
当我上传照片时,照片加载成功,但是照片放错了目录。
而不是将图像放在'media/posts-pics/' 的路径上——正如我在我的帖子模型中所概述的那样——它被放置在'media' 路径上。
这些是我的文件:
models.py
class Post(models.Model):
index_pic = models.ImageField(upload_to='posts-pics/')
Project.urls.py
if settings.DEBUG:
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
views.py
def add_post(request):
if request.method == "POST":
form = AddPostForm(request.POST, request.FILES)
if form.is_valid():
new_post = form.save(commit=False)
new_post.index_pic = form.cleaned_data['index_pic']
new_post.save()
return redirect('view_post')
else:
form = AddPostForm()
template = 'post/add_edit_post.html'
context = {'form': form}
return render(request, template, context)
def edit_post(request, slug):
post = get_object_or_404(Post, slug=slug)
if request.method == "POST":
form = AddPostForm(request.POST, request.FILES, instance=post)
if form.is_valid():
Post.objects.filter(id=post.id).update(title=request.POST['title'],
index_pic=form.cleaned_data['index_pic'],
)
return redirect('view_post')
else:
form = AddPostForm(instance=post)
template = 'post/add_edit_post.html'
context = {'form': form}
return render(request, template, context)
我为add_post 使用了完全相同的代码,并且照片在它的位置,但我在edit_post 中遇到了麻烦。 怎么了?
注意:
从技术上讲,我可以删除
'media/post-pics',但这是通过 特殊用途和目的是:每个应用程序都有其文件夹 保存图像。
【问题讨论】:
-
您可以像这样删除多余的括号:
index_pic = models.ImageField(upload_to='posts-pics/') -
我删除了括号,但问题没有解决。@Stevy
标签: python django django-2.2 django-uploads