图像将不会从django中的表单上载。如果从管理面板输入图像,而不是从表单输入,则图像将上载
如果通过表单完成,图像将不会上载。如果图像通过管理界面上传,它将正常工作。。在研究了几个小时的文档和谷歌之后,我想不出哪里出了问题 如果有人有任何线索,我将不胜感激 模型 form.py图像将不会从django中的表单上载。如果从管理面板输入图像,而不是从表单输入,则图像将上载,django,image,Django,Image,如果通过表单完成,图像将不会上载。如果图像通过管理界面上传,它将正常工作。。在研究了几个小时的文档和谷歌之后,我想不出哪里出了问题 如果有人有任何线索,我将不胜感激 模型 form.py class AddEventForm(forms.ModelForm): class Meta: model = Event fields = ('event_name','event_date','event_location','event_t
class AddEventForm(forms.ModelForm):
class Meta:
model = Event
fields = ('event_name','event_date','event_location','event_type','event_description','event_img')
模板
{% extends '_base.html' %}
{% load materializecss %}
{% block title %} Add Event{% endblock title %}
{% block content %}
<div class="container" >
<h1>Add Event </h1><i class = 'material-icons large'>pedal_bike</i><i class = 'material-icons large blue-text'>directions_walking</i><i class = 'material-icons small green-text'>
directions_running</i>
</i>
<form method = 'POST' enctype="multipart/form-data">
{% csrf_token %}
{{form|materializecss}}
<button type = 'submit' class = 'btn waves-effect waves-light amber lighten-2 black-text hoverable'>Add Event
<i class = 'material-icons right'>send</i></button>
</form>
</div>
{% endblock content %}
我已经编辑了这个问题,并为表单添加了views.py文件
再次感谢您的帮助
def add_event(request):
submitted = False
if request.method == 'POST':
form = AddEventForm(request.POST)
if form.is_valid():
form.save()
return HttpResponseRedirect('/Event/List/')
else:
form = AddEventForm()
if 'submitted' in request.GET:
submitted = True
return render(request,'add-event.html', {'form':form, 'submitted':submitted })
您还需要将
request.FILES
传递到表单,request.POST
仅包含表单中填写的项目,而不包含上载的文件:
def add_event(request):
submitted = False
if request.method == 'POST':
form = AddEventForm(request.POST, request.FILES)
if form.is_valid():
form.save()
return HttpResponseRedirect('/Event/List/')
else:
form = AddEventForm()
submitted = 'submitted' in request.GET
return render(request,'add-event.html', {'form':form, 'submitted':submitted })
def添加事件(请求):
提交=错误
如果request.method==“POST”:
form=AddEventForm(request.POST、request.FILES)
如果form.is_有效():
form.save()
返回HttpResponseRedirect(“/Event/List/”)
其他:
form=AddEventForm()
submitted='submitted'在request.GET中
返回render(请求,'add-event.html',{'form':表单,'submitted':submitted})
request.POST只包含文本字段,而不是图像或文件
您还需要传递request.FILES以获取文件或图像
def add_event(request):
submitted = False
if request.method == 'POST':
form = AddEventForm(request.POST, request.FILES)
if form.is_valid():
form.save()
return HttpResponseRedirect('/Event/List/')
else:
form = AddEventForm()
if 'submitted' in request.GET:
submitted = True
return render(request,'add-event.html', {'form':form,
'submitted':submitted })
你上传数据的地方的视图是什么样子的?我已经在问题中添加了views.py文件,在盯着代码看了几个小时后,这有助于你有一个新的视角。。现在很有魅力
def add_event(request):
submitted = False
if request.method == 'POST':
form = AddEventForm(request.POST, request.FILES)
if form.is_valid():
form.save()
return HttpResponseRedirect('/Event/List/')
else:
form = AddEventForm()
submitted = 'submitted' in request.GET
return render(request,'add-event.html', {'form':form, 'submitted':submitted })
def add_event(request):
submitted = False
if request.method == 'POST':
form = AddEventForm(request.POST, request.FILES)
if form.is_valid():
form.save()
return HttpResponseRedirect('/Event/List/')
else:
form = AddEventForm()
if 'submitted' in request.GET:
submitted = True
return render(request,'add-event.html', {'form':form,
'submitted':submitted })