Python 首次登录时创建教程

Python 首次登录时创建教程,python,django,signals,python-social-auth,receiver,Python,Django,Signals,Python Social Auth,Receiver,我目前正在使用python social auth将用户登录到我的Django应用程序,并在第一次用户创建时显示教程。到目前为止我已经尝试过了,但请求在预保存信号中不起作用。还有别的办法吗 @receiver(pre_save, sender=User) def show_tutorial(sender, instance=None, **kwargs): # For first time creation of user display tutorial if instance

我目前正在使用python social auth将用户登录到我的Django应用程序,并在第一次用户创建时显示教程。到目前为止我已经尝试过了,但请求在预保存信号中不起作用。还有别的办法吗

@receiver(pre_save, sender=User)
def show_tutorial(sender, instance=None, **kwargs):
    # For first time creation of user display tutorial
    if instance._state.adding:
        print ('USER CREATED')
        request.session['first_login'] = True
编辑:我在视图中尝试了以下代码,但一旦登录,print语句就从未登录到终端

def after_user_created(request, user, **kwargs):
    user, created = User.objects.get_or_create(user=user)
    if created:
         request.session['first_login'] = True
         print('FIRST LOGIN')

你不能这样做。即使你能做,你也不应该做。让我们在视图中根据请求尽可能多地执行操作。像这样

def create_view(request):
    user, created = User.objects.get_or_create(id=xxx)
    if created:
         request.session['first_login'] = True
更新

添加假定使用的解决方案

① 设置settings.SOCIAL\u AUTH\u NEW\u USER\u REDIRECT\u URL

NEW_USER_REDIRECT_URL=/new/user/view
② 使用新用户视图更新会话

def new_user_view(request):
    request.session['first_login'] = True

检查上面的编辑。我试过了,但由于某种原因,请求没有通过,因为打印语句从未出现在终端中。@Viji123这就是您正在使用的库吗@Viji123更新我的答案。请再试一次。