【发布时间】:2015-05-26 05:25:10
【问题描述】:
我有一个带有图像字段的自定义个人资料表单,用户可以在其中上传个人资料图片以及其他一些字段。到目前为止它工作正常。问题是,提交表单时,它总是上传和更新字段,即使用户没有选择文件。所以一个用户已经提交了表单并上传了一张图片。然后他/她稍后会回来更新一些其他字段,但不更新图片。提交表单后,个人资料图片消失并已重置为默认值。仅在选择新文件时如何获取图像字段更新?
modesl.py
class Profil(models.Model):
def content_file_userpic(instance, filename):
return '/'.join(['pics', instance.user.username, filename])
user = models.OneToOneField(User, primary_key=True)
user_pic = models.ImageField(upload_to=content_file_userpic, blank=True, verbose_name='Foto', default='user_pic_default.png')
forms.py
class ProfilForm(ModelForm):
user_pic = forms.ImageField(label='Foto',required=False, widget=forms.FileInput)
【问题讨论】:
-
请出示您的查看代码。
-
def profile_edit(request): try: form = ProfilForm(instance=Profil.objects.get(pk=request.user)) context = {"profil_formular": form} template = "profil/edit .html" 除了 ObjectDoesNotExist: print("该条目不存在。") return redirect("profil_add") if request.method == "POST": form = ProfilForm(request.POST, request.FILES) if form. is_valid():profil = form.save(commit=False) profile.user = request.user profil.bewerbungsnr = request.user.id profile.save() info(request, ("profile updated")) return redirect(' /profil') 返回渲染(请求、模板、上下文)
标签: django forms file-upload