如何使用django_rest_auth和django rest框架为新用户创建成员资格记录

时间:2019-12-05 01:15:43

标签: django django-rest-framework django-views django-rest-auth

我正在尝试使用Django Rest Framework和Django Rest Auth创建邀请/接受工作流程。

我的初始帐户创建工作正常。然后,用户创建了一个团队,没问题。该所有者现在发送邀请。凉。电子邮件出去,被邀请者得到的电子邮件是带有被邀请他们参加的团队的ID。

这就是我努力的地方。有一种将团队和成员联系起来的成员资格模型。邀请用户注册后,我要创建该会员记录。

那么,我该把成员资格创建方法放在哪里?是在serializer还是view中?

Django Rest Auth RegistrationView调用RegistrationSerializer here的save方法。 serializer将创建的user返回到视图以进行响应。

我知道我需要在创建用户后创建会员记录,否则就没有用户要添加到会员中了。

但是我不知道该在哪里做?

我当时正在考虑创建一个create_membership方法,该方法在运行create方法后会被触发,但无法正常工作。

类似这样的东西:

def create_membership(self):
    team = "6edb0a55-199a-4aae-aa40-e7313186136b"
    return Membership.objects.create(team__id=team, member=self.user)

然后像这样调用它(这会修改RegistrationView的create方法)

def create(self, request, *args, **kwargs):
    serializer = self.get_serializer(data=request.data)
    serializer.is_valid(raise_exception=True)
    user = self.perform_create(serializer)
    member = self.create_membership()
    headers = self.get_success_headers(serializer.data)

    return Response(self.get_response_data(user),
                    status=status.HTTP_201_CREATED,
                    headers=headers)

但是,这也不起作用。也许我在想这一切错吗?也许需要在序列化器上声明成员身份。

会喜欢一些建议。谢谢!

0 个答案:

没有答案