Django的文档说明了一切,尤其是存储有关用户的其他信息的部分。首先,您需要在
models.py字段中的某个位置定义一个模型,以获取用户的其他信息:
models.py
from django.contrib.auth.models import Userclass 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:
settings.py
...AUTH_PROFILE_MODULE = 'accounts.UserProfile'...
您需要
accounts用您的应用名称替换。最后,您希望在每次
User通过注册
post_save处理程序创建实例时创建一个配置文件,这样,每次创建用户时,Django也会创建一个配置文件:
models.py
访问个人资料from django.contrib.auth.models import Userclass 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)
要在您的视图中访问当前用户的个人资料,只需使用
User请求提供的实例,然后在其上调用get_profile:
def your_view(request): profile = request.user.get_profile() ... # Your pre
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)