Возврат поля модели в наборе представлений django
У меня проблема с представлениями, я пытаюсь написать представление для возврата членства пользователя на сайте, но получаю ошибку membership model is:
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
view is:
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
Я тоже пробовал Return Response(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()