Python Django UpdateView/ImageField问题:未返回新上载的图像
型号: 视图: 模板:Python Django UpdateView/ImageField问题:未返回新上载的图像,python,django,imagefield,Python,Django,Imagefield,型号: 视图: 模板: class LogoEdit(UpdateView): model = Logo template_name = 'polls/logo-edit.html' success_url = '/polls/logos/' def form_valid(self, form): pdb.set_trace() {%csrf\u令牌%} {{form.as_p}} 选择新图像: 调试视图: 现有图像: <form id="my_form
class LogoEdit(UpdateView):
model = Logo
template_name = 'polls/logo-edit.html'
success_url = '/polls/logos/'
def form_valid(self, form):
pdb.set_trace()
{%csrf\u令牌%}
{{form.as_p}}
选择新图像:
调试视图:
现有图像:
<form id="my_form" action="" method="post">{% csrf_token %}
{{ form.as_p }}
<input type="submit" value="Save Changes" />
</form>
(Pdb)self.object
带有新选定图像的表格(DSC_0021.JPG):
(Pdb)test=form.save()
(Pdb)试验
正如您所见,原始图像仍保持原样 您需要保存提供request.FILES的表单:
(Pdb) test = form.save()
(Pdb) test
<Logo: media/uploads/DSCN0844.JPG>
在HTML表单中(因为表单中有一个
):
如果使用的是UpdateView
,则只需向模板中的表单标记添加enctype=“multipart/form data”
属性即可。其余部分将由UpdateView
类处理。只需添加到模板中即可
<form method="POST" enctype="multipart/form-data">
你能明确地问一个问题吗?例如,我在你的模板中没有看到你试图呈现上传的图像。-就是这样,谢谢-它成功了,谢谢你有同样的问题,添加到表单中解决了它!
(Pdb) test = form.save()
(Pdb) test
<Logo: media/uploads/DSCN0844.JPG>
if request.method == 'POST':
form = MyForm(request.POST, request.FILES)
if form.is_valid():
form.save()
<form method="POST" enctype="multipart/form-data">
<form method="POST" enctype="multipart/form-data">