django - 如何使用 django_rest_auth 和 django rest 框架为新用户创建会员记录
问题描述
我正在尝试使用 Django Rest Framework 和 Django Rest Auth 创建邀请/接受工作流。
我的初始帐户创建工作正常。然后用户创建一个团队,没问题。该所有者现在发送邀请。凉爽的。电子邮件发送出去,受邀者收到一封电子邮件,其中包含他们被邀请加入的团队的 ID。
这就是我挣扎的地方。有一个连接团队和成员的会员模型。当用户被邀请注册时,我想创建该会员记录。
那么,我该把会员创建方法放在哪里呢?是在serializer
还是在view
?
Django Rest AuthRegistrationView
调用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)
但是,这也不起作用。也许我在想这一切都是错的?也许需要在序列化程序上声明成员资格。
会喜欢一些建议。谢谢!
解决方案
推荐阅读
- javascript - 是否应该在节点中收听 http.ClientReuqest 的“错误”事件?
- arrays - 将数据从 .csv 传输到结构数组,然后对其进行排序以将其保存在不同的文件中
- .htaccess - 三星 Tizen 智能电视浏览器上的 HTML5 视频不工作和扩展黑客
- spring-webflux - 带有 Spring Webflux 的 Project Reactor 中的调度程序
- python - Twitter 情绪分析常数零 (0.0000e+00) 损失值
- asp.net-core - Blazor StateHasChanged() 未更新子组件
- javascript - 如何在使用 setTimeout 执行的 if 条件中将 css 应用于列表的文本项?(文本滑块)
- javascript - 指纹解锁应用程序解锁门锁(物联网项目)
- sql - 找到所有有红球和蓝球的罐子
- sql - 如何提高我的 postgresql 查询的性能?