2

I'm sending data like below to my django rest framework app.

{
 "email": "[email protected]"
  "profile": {
              stripe_token: "tok_15iFaJRbriArhT", 
              stripe_id: "cus_5u3iksCCw", 
              quantity: "5"
            },
  "subscription": {
              subscription_name: "noidea"
            }
}

Based on my serializers and models I can get everything except quantity because I don't have a field called quantity on any of my models. But I would simply like to grab the value sent in the quantity field and then do something with it.

This is what I'm doing so far:

serializers.py

class UserProfilePaymentSerializer(serializers.ModelSerializer):
    class Meta:
        model = UserProfile
        fields = ('stripe_id', 'subscribed','stripe_token')

class UserSubscriptionSerializer(serializers.ModelSerializer):
    class Meta:
        model = Subscriptions
        fields = ('subscription_name',)

class PaymentSerializer (serializers.ModelSerializer):
    profile = UserProfilePaymentSerializer()
    subscription = UserSubscriptionSerializer()

    class Meta:
        model = User
        fields = ('email', 'profile','subscription',)
    def update (self, instance, validated_data):
        profile_data = validated_data.pop('profile')
        subscription_data = validated_data.pop('subscription')
        print profile_data
        print subscription_data

models.py

class UserProfile(models.Model):
    user = models.OneToOneField(User)
    telephone_number = models.CharField(max_length=100)
    stripe_id = models.CharField(max_length=255)
    subscribed = models.BooleanField(default=False)
    stripe_token = models.CharField(max_length=255)

class Subscriptions(models.Model):
    user = models.ManyToManyField(User)
    subscription_name = models.CharField(max_length=100)

1 Answer 1

0

Add quantity field to UserProfilePaymentSerializer. Then you can access quantity field in your validated data dictionary.

class UserProfilePaymentSerializer(serializers.ModelSerializer):

    quantity = serializers.CharField()

    class Meta:
        model = UserProfile
        fields = ('stripe_id', 'subscribed','stripe_token')

class UserSubscriptionSerializer(serializers.ModelSerializer):
    class Meta:
        model = Subscriptions
        fields = ('subscription_name',)

class PaymentSerializer (serializers.ModelSerializer):
    profile = UserProfilePaymentSerializer()
    subscription = UserSubscriptionSerializer()

    class Meta:
        model = User
        fields = ('email', 'profile','subscription',)

    def update (self, instance, validated_data):
        ....
        quantity = validated_data['profile']['quantity']
        ....
Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.