2017-04-04 33 views
2

編輯的資料圖片,我能夠上傳個人資料圖片,但我不能編輯它如何顯示在Django

我有形式與圖像瀏覽選項填充,但是當我點擊保存,這不是實際上在模板中更新。但它在管理工作正常

views.py

def create_form(request): 
     form = AlbumForm(request.POST or None, request.FILES or None) 
     if form.is_valid(): 
      album = form.save(commit=False) 
      album.user = request.user 
      album.image= request.FILES['image'] 
      album.save() 
      return render(request, 'about.html', {'album': album}) 
     context = { 
      "form": form, 
     } 
     return render(request, 'create_form.html', context) 

def profile_edit(request): 
    if request.method == 'POST': 
     form = AlbumForm(request.POST, instance=request.user.album) 
     if form.is_valid(): 
      album = form.save(commit=False) 
      album.user = request.user 
      form.save() 
      return redirect(reverse('about')) 
    else: 
     form = AlbumForm(instance=request.user.album) 
     args = {'form': form} 
     return render(request, 'profile_edit.html', args) 

models.py

class Album(models.Model): 
    user = models.OneToOneField(User) 
    image = models.FileField() 

forms.py

class AlbumForm(forms.ModelForm): 
    class Meta: 
     model = Album 
     fields = ['image'] 

profile_edit.html

{% extends 'base.html' %} 
{% block content %} 

<form action="{% url 'profile_edit' %}" method="post" enctype="multipart/form-data"> 
    {% csrf_token %} 
    {{ form.as_p }} 
    <button type="submit" class="save btn btn-default">save</button> 
</form> 
<div> 
     <img src="{{ user.album.image.url }}" class="img-responsive"> 
</div> 

{% endblock %} 

回答

1

試試這個

AlbumForm(request.POST, request.FILES, instance=request.user.album) 
+0

非常感謝你,它的工作! – shweta

0

您需要在配置文件編輯視圖中將request.FILES添加到您的​​。