繁体   English   中英

在 django 中获取用户成员资格

[英]get user membership in django

我需要获取请求用户是否在我的网站中拥有会员资格,但我收到错误任何人可以帮助我吗? 用户会员 model 是


    class UserMembership(models.Model):
    user = models.ForeignKey('accounts.User', on_delete=models.CASCADE, related_name='user_membership')
    membership = models.ForeignKey(Membership, on_delete=models.DO_NOTHING, null=True, related_name='membership')

    def __str__(self):
        return self.user.email

序列化器是:


    class UserMemberShipSerializer(serializers.ModelSerializer):
    class Meta:
        model = UserMembership
        fields = ['id', 'user', 'membership']

并且视图是


    class MembershipView(viewsets.ModelViewSet):
    model = UserMembership
    serializer_class = UserMemberShipSerializer

    def get_user_membership(self):
        user_membership_qs = UserMembership.objects.get(user=self.request.user)
        print(user_membership_qs)
        if user_membership_qs.exists():
            return user_membership_qs.first()

    def get_queryset(self):
        current_membership = self.get_user_membership(self.request)
        return current_membership

错误就在这一行


            current_membership = self.get_user_membership(self.request)

错误是'current_membership = self.get_user_membership(self.request) TypeError: get_user_membership() 需要 1 个位置参数,但给出了 2 个'

从 get_user_membership function 的输入中删除“self.request”:

current_membership = self.get_user_membership()

或将“请求”作为 arg 添加到 function:

    def get_user_membership(self,request):
        user_membership_qs = UserMembership.objects.get(user=request.user)
        print(user_membership_qs)
        if user_membership_qs.exists():
            return user_membership_qs.first()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM