Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/19.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 正在编写user.get_profile()自定义函数,该函数应创建身份验证配置文件(如果没有)_Python_Django - Fatal编程技术网

Python 正在编写user.get_profile()自定义函数,该函数应创建身份验证配置文件(如果没有)

Python 正在编写user.get_profile()自定义函数,该函数应创建身份验证配置文件(如果没有),python,django,Python,Django,我正在尝试编写自定义的get_profile()函数,该函数应该为通过admin或任何其他未调用post_save的方式注册的用户创建用户配置文件 我怎么开始呢 我有点困惑。您正在尝试让用户创建帐户并登录吗?然后使用django注册,这很容易,而且是开箱即用的 我想您有一个模型可以处理这样的用户配置文件: class UserProfile(models.Model): """Contains user profile fields not provided by User model"

我正在尝试编写自定义的
get_profile()
函数,该函数应该为通过admin或任何其他未调用
post_save
的方式注册的用户创建用户配置文件


我怎么开始呢

我有点困惑。您正在尝试让用户创建帐户并登录吗?然后使用django注册,这很容易,而且是开箱即用的

我想您有一个模型可以处理这样的用户配置文件:

class UserProfile(models.Model):
    """Contains user profile fields not provided by User model"""
    user = models.OneToOneField(User)
    # Defined User profile fields like picture, phone, etc
因此,添加以下行(可能在您的models.py中
UserProfile
model之后):

允许通过创建用户的配置文件(即在模板中:
{%user.profile.phone%}
)来访问该配置文件(如果不存在)

这就是我在我的网站上解决你描述的问题的方法


希望这能有所帮助

不,公司中的一些SEO人员有时会通过管理员页面注册,但不知怎的,他们在save()过程中没有创建个人资料。我不知道为什么。。这就是为什么我想在get_profile()过程中再次检查profile是否存在,如果不存在,我将创建此..然后何时调用此行?它向用户添加一个属性
profile
,因此每次访问时都会调用它,即
theuser=User.objects.get(pk=1);打印user.profile.
或在我发布答案时的模板中,只需使用它;)所以你不应该再使用
get\u profile()
,这个属性取代了它是的,它在我的网站上已经运行了将近一年
User.profile = property(lambda u: UserProfile.objects.get_or_create(user=u)[0])