2013-04-16 4 views
0

Je souhaite télécharger l'image sur le serveur. pour cela j'ai créé un formulaire et dans mon fichier views.py j'ai essayé de le soumettre dans le serveur. Ici, il ne télécharge pas le fichier dans le dossier "images". au lieu de cela, il met à jour uniquement la base de données déposée avec le nouveau nom de l'image. Alors quelqu'un peut-il me donner une solution.Django: Téléchargement d'images sur le serveur

ce fichier est views.py

@login_required 
def edit_profile(request): 

if request.POST: 


     employee = Employee.objects.get(user=request.user)   
     employee.avatar=request.POST.get('image') 
     employee.save() 
     return HttpResponseRedirect('/view_profile/')  

user_profile = request.user.get_profile() 
return render_to_response('edit_profile.html',{'profile':user_profile },context_instance=RequestContext(request)) 

ici mon code html

{% block content %} 

<form action="." method="post"> 
{% csrf_token %}  

    <input type="file" name="image"/> 
    <input type="submit" value="Save Changes" name="save" />   

</form> 

{% endblock %} 

Que dois-je changer pour télécharger l'image des "images" le dossier

+0

devrait être '' request.FILES.get ('image') ''. – krak3n

Répondre

2

Vous devez ajouter enctype="multipart/form-data" dans votre élément form, de sorte que les fichiers sont téléchargés et disponibles dans request.FILES dans la vue ..

donc le mettre à jour

<form action="." method="post" enctype="multipart/form-data" > 

.... 

Plus d'infos sur Binding uploaded files to a form

Pour enregistrer l'image est plus facile à utiliser ModelForm et définir le fichier image de façon appropriée. Mais encore vous voulez enregistrer l'objet faire directement

... 
employee.avatar = request.FILES['image'] 
employee.save() 

Ref File Uploads

+0

il change la base de données mais ne télécharge pas l'image dans le dossier "images". existe-t-il un code pour télécharger l'image? – Lahiruzz

+0

@Lahiruzz, avez-vous mis à jour le code comme suggéré dans la réponse? – Rohan

+0

@Lahiruzz, je vais suggérer d'utiliser 'ModelForm' plutôt que d'enregistrer directement l'objet. – Rohan

Questions connexes