如何在Django中更新ImageField

时间:2017-12-09 13:39:51

标签: django image field edit

我正在建立一个网站,并希望每个用户都可以上传和更新自己的个人资料图片。

更新配置文件模板加载完全正常。我可以更新除图像字段之外的所有其他字段。它只能从/ admin页面更新,但不能从更新配置文件页面更新。

这是个人资料模型中的我的图片字段:

character_1 = {'Money': .3, 'Strength': .25, 'Speed': .05}
character_2 = {'Money': .3, 'Age': 25, 'Speed': .7}
character_3 = {'Money': .3, 'Strength': .25, 'Power': 5}

dict_list = [character_1, character_2, character_3]

result = dict()

for d in dict_list:
    for k, v in d.items():
        if k in result:
            result[k] += v
        else:
            result[k] = v

print(result)

{'Money': 0.8999999999999999, 'Strength': 0.5, 'Speed': 0.75, 'Age': 25, 'Power': 5}
>>> 

这是我的ProfileForm:

class Profile(models.Model):
    user = models.OneToOneField(User, on_delete=models.CASCADE)
    dob = models.DateField(default=datetime.date(1989, 12, 25))
    gender = models.CharField(max_length=12, choices=GENDER_CHOICES, default='Unspecified')
    city = models.CharField(max_length=100, default='Braşov')
    image = models.ImageField(upload_to='profilepics', blank=True)

这是html模板:

class ProfileForm(forms.ModelForm):
class Meta:
    model = Profile
    fields = ('dob', 'gender', 'city', 'image')

这是update_profile视图:

{% block body %}
<form method="post">
<div class="container">
{% csrf_token %}
{{ user_form.as_p }}
{{ profile_form.as_p }}
<button type="submit">Update</button>
<a href="myprofile" class="btn btn-info" role="button">Cancel</a>
</form>
</div>
{% endblock %}

非常感谢您的阅读!

1 个答案:

答案 0 :(得分:1)

将属性enctype添加到html文档enctype="multipart/form-data"中的表单标记中

看到这个问题 Django ModelForm Imagefield Upload

正如w3schools中记载的那样 https://www.w3schools.com/tags/att_form_enctype.asp