首页 > 解决方案 > 如何向 django 用户模型添加选择字段

问题描述

我对用户模型处理身份验证的方式完全满意,但我想向其中添加一个选择字段,用户可以在患者、医生或普通用户之间进行选择。然后根据他们选择的领域创建配置文件模型。例如,患者有关于他们疾病的信息,但医生没有。除了 abstractuser 还有其他方法吗?因为我真的不想从头开始制作另一个项目。我应该对我的个人资料模型做些什么吗?我只想知道用户是谁。感谢您的回复

这是我的models.py:

class Profile(models.Model):
    user = models.OneToOneField(User, on_delete=models.CASCADE)
    image = models.ImageField(default='default.jpg', upload_to='profile_pics')


    def __str__(self):
        return f'{self.user.username} Profile'

    def save(self, *args, **kwargs):
        super(Profile, self).save(*args, **kwargs)

        img = Image.open(self.image.path)

        if img.height > 300 or img.width > 300:
            output_size = (300, 300)
            img.thumbnail(output_size)
            img.save(self.image.path)

这是我的forms.py:

class UserRegisterForm(UserCreationForm):
    email = forms.EmailField()

    class Meta:
        model = User
        fields = ['username','email','password1','password2']


class UserUpdateForm(forms.ModelForm):
    email = forms.EmailField()

    class Meta:
        model = User
        fields = ['username','email']


class ProfileUpdateForm(forms.ModelForm):
    class Meta:
        model = Profile
        fields = ['image']

标签: djangodjango-users

解决方案


推荐阅读