2017-02-22 18 views
1

Может ли кто-нибудь помочь мне найти мою ошибку. Я новичок в django.I хочу загрузить изображение, используя форму.загрузить файл, используя форму 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") 

request.POST.get («IMAGE_URL») всегда возвращает пустой ... не могу найти то, что я сделал неправильно ...

ответ

1

Ваш IMAGE_URL это поле файл, поэтому он должен присутствовать в request.FILES

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

Это сработало !!! .. спасибо за быстрый ответ ..: D – mursalin

+0

Спасибо #SOreadytohelp –