如何在django中识别和保存匿名用户选择?

时间:2019-05-26 12:22:19

标签: django django-rest-framework

我有一个学生测验应用程序。现在,学生必须首先在平台上抵抗,然后他们选择课程,并在他们面前出现相关的测验。 但是我想要的是:学生不必先注册。他们可以选择课程,然后参加一个测验,然后我将提示他们进行注册。我想要的是;当他们注册时,我可以将他们的课程之类的数据保存到匿名用户(他们在注册之前选择),并将其链接到他们注册后将创建的帐户。 那么我怎么知道他们在注册之前选择了什么课程,以及如何在注册之后将其链接到用户? 最好通过django rest框架作为我们的android应用程序。

1 个答案:

答案 0 :(得分:0)

您可以基于会话密钥创建“伪造”用户。像

    if not self.request.user.is_authenticated():
        #create anonymous user
        self.request.session.save()
        username = str(self.request.session.session_key) + '@dummy.com'
        try:
            user = MyUser.objects.create_user(username, is_fake=True)
        except:
            user = MyUser.objects.get(email=username)
        login(self.request, user)

然后,如果您具有这种格式的用户名,您就知道他们不是真实用户,并提供了有关登录等的常规选项。