Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/288.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用django表单上传文件_Python_Django_Forms - Fatal编程技术网

Python 使用django表单上传文件

Python 使用django表单上传文件,python,django,forms,Python,Django,Forms,谁能帮我找到我的错误。我是django的新手。我想用表单上传一张图片 #forms.py class ProfileFormSt(forms.Form): image_url = forms.FileField(required=False) #views.py class UpdateProfileStView(FormView): template_name = "home/member_st_form.html" def get(self, request,

谁能帮我找到我的错误。我是django的新手。我想用表单上传一张图片

#forms.py
class ProfileFormSt(forms.Form):
     image_url = forms.FileField(required=False)

#views.py
class UpdateProfileStView(FormView):
    template_name = "home/member_st_form.html"

    def get(self, request, id):
        user = User.objects.get(id=self.kwargs['id'])
        profile = StudentProfile.objects.get(user=user)
        form = ProfileFormSt(initial={
            'image_url': profile.propic,
        })
        return render(request, self.template_name, {'form': form})

    def post(self, request, id):
        user = User.objects.get(id=self.kwargs['id'])
        form = ProfileFormSt(request.POST, request.FILES)
        profile = StudentProfile.objects.get(user=user)
        if request.POST.get('image_url'):
            profile.propic = request.POST.get('image_url')
        profile.save()
        return redirect('home:member-profile-st', id)

#member_st_form.html
<form action="" method="post" enctype="multipart/form-data">{% csrf_token %} {{ form.as_p }}
    <button type="submit">update</button>
</form>

#models.py
class StudentProfile(models.Model):
      user = models.ForeignKey(User, on_delete=models.CASCADE)
      propic = models.FileField(default="profile-icon.png")
#forms.py
类ProfileFormSt(forms.Form):
image\u url=forms.FileField(必需=False)
#views.py
类UpdateProfilesView(FormView):
template\u name=“home/member\u st\u form.html”
def get(自我、请求、id):
user=user.objects.get(id=self.kwargs['id'])
profile=StudentProfile.objects.get(user=user)
表单=ProfileFormSt(初始={
“image_url”:profile.propic,
})
返回呈现(请求,self.template_名称,{'form':form})
def post(自我、请求、id):
user=user.objects.get(id=self.kwargs['id'])
form=ProfileFormSt(request.POST、request.FILES)
profile=StudentProfile.objects.get(user=user)
if request.POST.get('image_url'):
profile.propic=request.POST.get('image\u url')
profile.save()
返回重定向('home:member profile st',id)
#member_st_form.html
{%csrf_令牌%}{{form.as_p}}
更新
#models.py
班级学生档案(models.Model):
user=models.ForeignKey(用户,on_delete=models.CASCADE)
propic=models.FileField(默认值=“profile icon.png”)

request.POST.get('image\u url')总是返回空的…找不到我做错了什么…

您的image\u url是一个文件字段,因此它应该出现在
request.FILES

if request.FILES['image_url']:
     profile.propic = request.FILES['image_url']