在我的自定义用户模型中,我需要一个字段来存储用户的照片个人资料。因此,我在模型中将字段photo_profile
设置为ImageField
。
class User(AbstractBaseUser):
photo_profile = models.ImageField()
class RegisterForm(forms.ModelForm):
class Meta:
model = User
fields = [#fields are going to be shown here
'photo_profile',
]
def register_view(request):
title = "Register"
form = RegisterForm(request.POST or None)
print("hello")
if form.is_valid():
user = form.save(commit=False)
password = form.cleaned_data['password']
user.set_password(password)
user.is_active = True
user.last_login = timezone.now()
user.save()
login(request, user)
return render(request, 'index/index.html', {"user": user})
context ={
"form": form,
"title": title,
}
return render(request, 'user/loginRegister.html', context)
现在,如果我进入我的注册页面,将会有一个上传图像的按钮。
`<form method="post"action="" entype="multipart/form-data">
{% csrf_token %}
{{ form.as_p }}
<input type="submit" class="btn btn-default" title="{{ title }}"/>
</form>`
选择图像后,会显示图像。但是,当我点击提交按钮时,网页会询问&#34;字段(照片的字段)是必需的&#34;。
除了使用FileUploadForm
解决此问题之外还有其他方法吗?在将photo_profile的类型更改为ImageField之前,可以创建用户。
提前致谢!
答案 0 :(得分:1)
为了handle files in a form, you'll need to pass them in too:
form = RegisterForm(data=(request.POST or None), files=(request.FILES or None))