Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django最佳实践-参考自定义用户或配置文件模型_Python_Django_Django Custom User - Fatal编程技术网

Python Django最佳实践-参考自定义用户或配置文件模型

Python Django最佳实践-参考自定义用户或配置文件模型,python,django,django-custom-user,Python,Django,Django Custom User,根据Django的建议,我在我的应用程序中创建了自定义用户模型和配置文件模型 比如: class User(AbstractBaseUser): email = models.EmailField( verbose_name='email address', max_length=255, unique=True ) first_name = models.CharField(max_

根据Django的建议,我在我的应用程序中创建了自定义用户模型和配置文件模型

比如:

class User(AbstractBaseUser):
    email = models.EmailField(
            verbose_name='email address',
            max_length=255,
            unique=True
            )
    first_name = models.CharField(max_length=50)
    last_name = models.CharField(max_length=50)
    location = models.ForeignKey(Location)
    date_of_birth = models.DateField()
    date_joined = models.DateTimeField(auto_now_add=True)

    is_active = models.BooleanField(default=True)
    is_admin = models.BooleanField(default=False)

    objects = UserManager()

    USERNAME_FIELD = 'email'
    REQUIRED_FIELDS = ['first_name', 'last_name', 'location', 'date_of_birth']

class Profile(models.Model):
    user = models.OneToOneField(User)

    picture = models.ImageField(upload_to='profile_pictures/', 
                              default='default.jpg')
    bio = models.TextField(blank=True)
    sex = models.CharField(max_length=10,
                           choices=(('Male', 'Male'),
                                    ('Female', 'Female'),
                                    ('No Comment', 'No Comment')),
                           default="No Comment")
    occupation = models.CharField(max_length=100, blank=True)

让其他模型引用用户的最佳实践是什么?例如,我的应用程序有一个消息传递系统。在
消息
模型中,与
用户
相比,是否最好与
配置文件
建立外键关系?
用户
模型是否仅用于身份验证?

我认为您可以将模型与用户关联,并使用相关名称访问配置文件


这使您的模型不直接依赖于自定义配置文件。

是的,用户将始终可用,然后您可以检查配置文件的存在并相应地采取行动