【问题标题】:i am unable to change profile pic in django我无法在 django 中更改个人资料图片
【发布时间】:2021-01-30 18:48:03
【问题描述】:

我在 models.py 和 form.py 中创建了一个个人资料表单来更新它,但是除了个人资料图片之外所有东西都得到了更新 views.py

views.py

@login_required
def update_profile(request):
    if request.method == 'POST':
        profile_form = ProfileForm(request.POST, request.FILES, instance=request.user.profile)
        if profile_form.is_valid():
            profile_form.save()
            messages.success(request, "Your profile updated.")
        else:
            status_code = 400
            message = 'Please correct the error below.'
            messages.error(request, "Please use correct information")
    else:
        profile_form = ProfileForm(instance=request.user.profile)
    return render(request, 'profile.html', {
        'profile_form': profile_form
    })

forms.py

models.py

【问题讨论】:

  • 尝试在 upload_to 路径的末尾使用正斜杠,如下所示:upload_to='profile_pics/'
  • 请在您的问题中包含实际代码,而不仅仅是代码图像。看看这个:stackoverflow.com/editing-help

标签: django django-models django-rest-framework django-views django-forms


【解决方案1】:

首先,您需要在POST 请求中包含request.FILES,在其中初始化您的表单,如下所示:

profile_form = ProfileForm(request.POST, request.FILES, instance=request.user.profile)

然后在您的 html 中,您需要将 enctype="multipart/form-data" 属性添加到您的 form

<form method="post" enctype="multipart/form-data">
    {% csrf_token %}
    {{ profile_form.as_p }}
    <button type="submit" value="Submit"></button>
</form>

【讨论】:

  • 我可以从管理面板更改它但无法从配置文件表单更改不知道为什么
  • 将您的表单添加到问题中
  • 添加forms.py请查看,如有错误请指教
  • 表单是否保存了图像,您可以在管理中看到它还是提交后无法看到它?
  • 我只能从管理面板更新个人资料图片,但是当我尝试从个人资料表格更新它时,除了个人资料图片,一切都更新了
【解决方案2】:

尝试在upload_to 路径的末尾使用正斜杠,如下所示:upload_to='profile_pics/'

【讨论】:

    猜你喜欢
    • 2020-04-26
    • 2017-09-12
    • 2018-01-16
    • 2017-07-10
    • 2020-04-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-16
    相关资源
    最近更新 更多