我request.user.get_profile()在我的代码中使用了很多地方.但是,并非所有用户都拥有与其帐户相关联的用户个人资料.有没有什么方法可以在调用时自动创建用户配置文件,request.user.get_profile()如果他们没有用户配置文件而不必更改我的每个request.user.get_profile()电话.也许使用信号或其他东西.
我遇到的问题是我使用单点登录登录,所以如果有人登录到另一个系统,然后进入我的网站,他们就会登录但是没有创建用户配置文件(我在他们登录时创建用户配置文件)在).
Man*_*dan 22
通常在创建用户实例后立即创建用户配置文件对象.这可以使用信号轻松完成.
我遇到的问题是我使用单点登录登录,所以如果有人登录到另一个系统,然后进入我的网站,他们就会登录但是没有创建用户配置文件(我在他们登录时创建用户配置文件)在).
显然在用户创建时使用信号对您不起作用.完成您尝试执行的操作的一种方法是request.user.get_profile()使用自定义函数替换调用.说get_or_create_user_profile(request).此函数可以尝试检索用户的配置文件,然后如果不存在则动态创建一个.
例如:
def get_or_create_user_profile(request):
profile = None
user = request.user
try:
profile = user.get_profile()
except UserProfile.DoesNotExist:
profile = UserProfile.objects.create(user, ...)
return profile
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11289 次 |
| 最近记录: |