Django的文档说明了一切,尤其是存储有关用户的其他信息的部分。首先,您需要在models.py
字段中的某个位置定义一个模型,以获取用户的其他信息:
from django.contrib.auth.models import User
class UserProfile(models.Model):
# This field is required.
user = models.OneToOneField(User)
# Other fields here
accepted_eula = models.BooleanField()
favorite_animal = models.CharField(max_length=20, default="Dragons.")
然后,你需要表明,该模型(UserProfile
)是通过设置用户配置文件AUTH_PROFILE_MODULE
的内部settings.py
:
...
AUTH_PROFILE_MODULE = 'accounts.UserProfile'
...
您需要accounts
用您的应用名称替换。最后,您希望在每次User
通过注册post_save
处理程序创建实例时创建一个配置文件,这样,每次创建用户时,Django也会创建一个配置文件:
from django.contrib.auth.models import User
class UserProfile(models.Model):
# This field is required.
user = models.OneToOneField(User)
# Other fields here
accepted_eula = models.BooleanField()
favorite_animal = models.CharField(max_length=20, default="Dragons.")
def create_user_profile(sender, instance, created, **kwargs):
if created:
UserProfile.objects.create(user=instance)
post_save.connect(create_user_profile, sender=User)