Получение всех товаров из поля Many2Many в Django
Моя User
модель выглядит следующим образом:
class User(AbstractBaseUser, PermissionsMixin):
id = models.UUIDField(primary_key=True)
#other user informations, f.e. color, size, name
followed = models.ManyToManyField(
Product, related_name="followed_products", blank=True)
objects = CustomAccountManager()
object = models.Manager()
def __str__(self):
return self.email
Я храню продукты, за которыми следит пользователь, внутри followed = models.ManyToManyField(Product, related_name="followed_products", blank=True)
. Я добавляю продукты следующим образом FollowView
:
def FollowView(request, pk):
if request.COOKIES.get('refresh_token'):
refresh = jwt.decode(request.COOKIES.get(
'refresh_token'), SECRET_KEY, algorithms=["HS256"])
user = User.objects.filter(id=refresh['user_id']).first()
product = Product.object.filter(id=pk).first()
user.followed.add(product)
return Response({}, status=status.HTTP_200_OK)
Моя Product
модель выглядит следующим образом:
class Product(models.Model):
class ProductObjects(models.Manager):
def get_queryset(self):
return super().get_queryset().filter(status='published')
id = models.UUIDField(primary_key=True)
owner = models.ForeignKey(
settings.AUTH_USER_MODEL, on_delete=models.CASCADE)
#other Product informations
object = models.Manager()
productobjects = ProductObjects()
def __str__(self):
return self.name
Теперь мой вопрос в том, как я могу GET
все товары с деталями (например, название, цвет, размер) для указанного пользователя и отправить их во фронтенд? Я пытался получить их следующим образом: user.followed.get(owner=refresh['user_id'])
, но он возвращает мне ошибку: get() returned more than one Product -- it returned 2!