在django视图集中返回一个模型字段



我有一个问题,我的观点,我试图写一个视图来返回我的用户成员资格,如果用户在网站上,但我得到一个错误会员模式为:


class Membership(models.Model):
membership_type = models.CharField(
choices=MEMBERSHIP_CHOICES,
default='Free',
max_length=30)
price = models.DecimalField(max_digits=10, default=0, decimal_places=3)
def __str__(self):
return self.membership_type

用户成员是:


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',
default='Free')
def __str__(self):
return self.user.email

的观点是:


class MembershipView(viewsets.ModelViewSet):
model = UserMembership
serializer_class = UserMemberShipSerializer
def get_queryset(self):
user_membership_qs = UserMembership.objects.get(user=self.request.user)
if user_membership_qs:
membership = user_membership_qs.membership
return membership

我也尝试了返回响应(成员),但没有工作,

错误是:'Membership'类型的对象没有len()

我找到了问题的答案我应该做的是:



class MembershipView(viewsets.ModelViewSet):
model = UserMembership
serializer_class = UserMemberShipSerializer
def get_queryset(self):
user_membership_qs = UserMembership.objects.get(user=self.request.user)
if user_membership_qs:
membership = user_membership_qs.membership
return membership.membership.all()

最新更新