我正在尝试使用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)
但是,这也不起作用。也许我在想这一切错吗?也许需要在序列化器上声明成员身份。
会喜欢一些建议。谢谢!