Отправка дополнительного поля сериализаторам -DRF [дубликат]

У меня есть ModelSerializer с полями из таблицы SubscriptionsPlans.

serializer.py

class SubscriptionSerializer(serializers.ModelSerializer):    
    class Meta:
        model = SubscriptionsPlans
        fields = {
            'id',
            'name',
            'plan_type',
            'plan_details',
            'price'
        }

Я хочу отправить дополнительное имя поля sub_id в этот сериализатор из представлений. Этот sub_id будет True или False в зависимости от таблицы SubscriptionsOrder. Если в SubscriptionsOrder есть строки, то sub_id будет True, иначе False. SubscriptionsOrder для конкретного пользователя смотрится здесь.

views.py

class SubscriptionView(APIView):
    def get(self, request):
        get_sub_id = SubscriptionsOrder.objects.filter(id=request.user).first()
        sub_id = get_sub_id.plan_selected
        subscription_details = SubscriptionsPlans.objects.filter(is_deleted=False)
        user_serializer = SubscriptionSerializer(subscription_details)
        return Response(user_serializer.data)

Я хочу отправить sub_id вместе с user_serializer.

models.py

class SubscriptionsPlans(models.Model):
    id = models.IntegerField(primary_key=True)
    name = models.CharField(max_length=255)
    plan_type = models.CharField(max_length=255)
    plan_details = models.TextField(max_length=1000)
    request_per_month = models.IntegerField()
    price = models.FloatField()
    is_deleted = models.BooleanField(default=False)
    created_at = models.DateTimeField()
    updated_at = models.DateTimeField(auto_now_add=True)

    class Meta:
        verbose_name = 'Subscription Plans'
        verbose_name_plural = 'Subscription Plans'


class SubscriptionsOrder(models.Model):
    id = models.IntegerField(primary_key=True)
    user_id = models.ForeignKey(
        AppUser,
        null=True,
        on_delete=models.SET_NULL
    )
    plan_selected = models.ForeignKey(SubscriptionsPlans, null=True,on_delete=models.SET_NULL)
    billing_info = models.IntegerField()
    payment_info = models.IntegerField()

    class Meta:
        verbose_name = 'Subscription Order'
        verbose_name_plural = 'Subscription Order'

перед отправкой sub_id вывод выглядит следующим образом

     {
        "id": 1,
        "name": "Professional",
        "plan_type": "MONTHLY",
        "plan_details": "{'Details'}",
        "price": 50.0
    },
    {
        "id": 2,
        "name": "Business",
        "plan_type": "MONTHLY",
        "plan_details": "{Business}",
        "price": 100.0
    }

После отправки sub_id

{
        "id": 1,
        "name": "Professional",
        "plan_type": "MONTHLY",
        "plan_details": "{'Details'}",
        "price": 50.0,
        "sub_id": True
    },
    {
        "id": 2,
        "name": "Business",
        "plan_type": "MONTHLY",
        "plan_details": "{Business}",
        "price": 100.0,
        "sub_id":False
    }
Вернуться на верх