Sorry, I'm not sure if my understanding is correct.

In my view, you have user coin exchange and user_exchange_plan , four 
models , like:

class User(models.Model):
    ...

class Coin(models.Model):
    ...

class Exchange(models.Model):
    ...

class UserExchangePlan(models.Model):
    user = ForeignKey(User, ...)
    coin = ForeignKey(Coin, ...)
    exchange =ForeignKey(Exchange, ...)

now you want to create a user_exchange_plan with user_id coin_id exchange_id

just create your UserExchangePlanSerializers like:

class UserExchangePlanSerializers(ModelSerializer):

    class Meta:
        model = UserExchangePlan
        fields = '__all__'

create your UserExchangePlanViewSet like:

class UserExchangePlanViewSet(ModelViewSet):
    queryset = UserExchangePlan.objects.all()
    serializer = UserExchangePlanSerializers

you can post {"user": <id>, "coin": <id>, "exchange": <id>,...} to create a 
user_exchange_plan database data

if you want to list user_exchange_plan's user coin exchange with list data 
type, you just need to create a new user_exchange_plan serializer like:

class ListUserExchangePlan(ModelSerializer):
    user = YourUserSerializer()
    coin = YourCoinSerializer()
    exchange = YourExchangeSerializer()

    class Meta:
        model = UserExchangePlan
        fields = '__all__'

You can build new YourUserSerializer/YourCoinSerializer/YourExc
hangeSerializer to your needs.

I hope my understanding is correct.

If you have other questions, you can email me directly.

By RyomaHan

 2019年5月7日星期二 UTC+8下午8:47:51,Amit Singh写道:
>
> My Table structure is there are four tables
>
>
> user
> coin
> exchange
>
>
> their reference goes to
>
>
> user_exchange_plan
>
> with keys
>
>
> user_id, coin_id, exchange_id
>
>
> so i am creating a user exchange plan via api
> for this i am sending a request like
>
>
> { "user": 1, "coin": 1, "exchange": 1, "plan_type": null, ..... }
>
>
> but it is throwing validation error that all three are required. what 
> could i be possibly doing wrong.
> how can i save foreign keys in this record.
>
> Following is the code for my serializer
>
> `class UserTradePlanSerializer(serializers.ModelSerializer):
>
> #code1
> user = serializers.PrimaryKeyRelatedField(queryset=SUser.objects.all())
> coin = serializers.PrimaryKeyRelatedField(queryset=Coin.objects.all())
> exchange = serializers.PrimaryKeyRelatedField(queryset=Exchange.objects.all())
>
>  #code2
> # user = SUserSerializer()
> # coin = CoinSerializer()
> # exchange = ExchangeSerializer()
>
> def create(self, validated_data):
>     return UserTradePlan.objects.create(**validated_data)
>
> class Meta:
>     model = UserTradePlan
>     fields = ("id", "user", "coin", "exchange", "plan_type", ....)
>     depth = 1`
>
>
> if i activate the code written under #code1 then it will work as expected, 
> but while retrieving it will not replace user with user object. it will 
> return the id of that user plain.
>
>
> if i activate the code written under #code2 and comment the code #code1 
> then while retrieving it replaces the user with object but it start 
> throwing the validation error.
>
>
> what is the appropriate way to save and retrieve the values of association 
> table. So that when saved it saves the id and when retrieved it replaces it 
> by object. i haven't used user_id field do i need to add it to send the 
> value?
>
>
> thanks
>

-- 
You received this message because you are subscribed to the Google Groups 
"Django REST framework" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-rest-framework/c2d642c8-132e-4810-b6c8-3ae1b82132d8%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to