Python 如何将化身配置文件添加到django内置表单?
如何在内置Django表单上添加字段以添加图像?以下是my form.py的代码:Python 如何将化身配置文件添加到django内置表单?,python,django,Python,Django,如何在内置Django表单上添加字段以添加图像?以下是my form.py的代码: class CreateUserForm(UserCreationForm): password1 = forms.CharField( label="Password", widget=forms.PasswordInput(attrs={'class':'form-control form-control-user', 'type':'passwo
class CreateUserForm(UserCreationForm):
password1 = forms.CharField(
label="Password",
widget=forms.PasswordInput(attrs={'class':'form-control form-control-user', 'type':'password', 'align':'center', 'placeholder':'Password'}),
)
password2 = forms.CharField(
label="Confirm password",
widget=forms.PasswordInput(attrs={'class':'form-control form-control-user', 'type':'password', 'align':'center', 'placeholder':'Confirm Password'}),
)
class Meta(UserCreationForm.Meta):
model = get_user_model()
widgets = {
'username': TextInput(attrs={'class': 'form-control form-control-user', 'placeholder': 'Username'}),
'first_name': TextInput(attrs={'class': 'form-control form-control-user', 'placeholder': 'First Name'}),
'last_name': TextInput(attrs={'class': 'form-control form-control-user', 'placeholder': 'Last Name'}),
'email': EmailInput(attrs={'class': 'form-control form-control-user', 'placeholder': 'Email Address'}),
}
fields = ['username', 'first_name', 'last_name', 'email']
我假设您使用的是内置django
User
模型。
Django用户模型没有头像字段。所以,您应该做的是通过创建一对一的关系来扩展您的默认用户模型,该关系通过“化身”字段指向另一个模型
from django.db import models
from django.contrib.auth.models import User
class UserProfile(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE, related_name="profile")
avatar = models.ImageField(upload_to = "avatars/", null=True, blank=True)
然后使用djangopost_save
信号在创建User
实例时自动创建UserProfile
模式实例
from django.db.models.signals import post_save
from django.dispatch import receiver
from django.contrib.auth.models import User
from yourapp.models import UserProfile
@receiver(post_save, sender=User)
def create_user_profile(sender, instance, created, **kwargs):
if created:
UserProfile.objects.create(user=instance)
在那之后,你就可以使用模态表单访问阿凡达字段
~hope that help您是要将图像接受为字段还是以表单形式渲染图像?接受图像,然后进行渲染,我知道如何渲染图像,但我不知道如何接受图像您查看了吗?。