html - 如何在django中显示编辑后的头像

标签 html django python-3.x

我可以上传个人资料图片,但无法编辑它

我的表单填充了图像浏览选项,但是当我单击“保存”时,它实际上并未在模板中更新。但它在管理中运行良好

View .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)

模型.py

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

表单.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    %}

最佳答案

试试这个

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

关于html - 如何在django中显示编辑后的头像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43206849/

相关文章:

php - 水平形式的文本区域宽度

html - 连续 3 个 div,中间 1 个,但在 div 内留有一个 float

html - Gmail 阻止内联 css 属性

python - 向 django 查询添加虚拟字段

python - 使用 save_model 方法在 django admin 中创建模型对象

python - Python 3 中的图形、绘图

html - :hover isn't applying full background to li

python - Django - Slugs - Key (slug)=() 重复

python - 如何使用pygame在屏幕上绘制可拖放的对象?

python - 将复杂列表转换为数据框表,其中第一个值作为第二列标题