python - Django- how to create relational objects with depth set in serializer? -


there 2 tables, user , phone; phone has foreign key phone_user linked user table. depth set in serializer, can phone information user. 'get' phone returns full data of phone instead phone id.

the question how create new phone linked existing user? question identical creating nested objects. tried send json full user data failed. error says "phone_user cannot null". user has been explicitly added in phone, why says user null?

please let me how take care of this.

class phoneserializer(serializers.modelserializer):     class meta:         model=phone         depth=1  class phoneviewset(viewsets.modelviewset):     queryset=phone.objects.all()     serializer_class=phoneserializer  user=requests.get("http://127.0.0.1/users/1/") phone=dict() phone['phone_user']=user json_str=json.dumps(phone)  // returns 500 error code request.post("http://127.0.0.1/phones/", data=json_str, headers=...) 

django says "django cannot create nested objects, , can use self-defined create or set read_only=true".

since serializer has depth set 1, need deserialize using id of user. so, instead of

phone['phone_user']=user

you should instead use

phone['phone_user']=user['id']

that assuming user object returned has id field, though.


Comments