【问题标题】:Django - extra fields for user formDjango - 用户表单的额外字段
【发布时间】:2014-07-24 23:06:08
【问题描述】:

在我正在开发的网站中,我有一个扩展userCreationForm 的用户注册表格。该表单只添加了默认不存在的字段,但它们在模型中,例如email、first_name和last_name。

class RegisterForm(UserCreationForm):
    email = forms.EmailField(label = "Email", required=True)
    first_name = forms.CharField(label = "First name", required = True )
    last_name = forms.CharField(label = "Last name", required = True)

    class Meta:
        model = User
        fields = ("username", "first_name", "last_name", "email", "password1", "password2" )

    def __init__(self, *args, **kwargs):
        super(RegisterForm, self).__init__(*args, **kwargs)

        for fieldname in ['username', 'password1', 'password2']:
            self.fields[fieldname].help_text = None

我的问题是,是否有办法添加另一个字段,例如图像字段、出生日期等,以便我可以制作更完整的用户资料?还是我必须创建自己的用户模型?

【问题讨论】:

    标签: django


    【解决方案1】:

    向 User 模型添加更多字段的 Django 惯用方法是创建第二个模型,其中 UserForeignKey。所以:

    from django.db import models
    from django.contrib.auth.models import User
    
    class MyUser(models.Model):
        user = models.ForeignKey(User)
        # ... other fields.  i.e. imagefield, date of birth (dob), etc ..
        # example:
        dob = models.DateField()
    

    【讨论】:

      猜你喜欢
      • 2017-04-02
      • 1970-01-01
      • 1970-01-01
      • 2016-12-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-13
      • 1970-01-01
      相关资源
      最近更新 更多