2013-05-07 17 views
6

Ho definito un modello di profilo utente, ma voglio avere un endpoint api che salva tutti i dati utente in entrambi i modelli. Con questo voglio dire, io sto usando il modello utente e Ho un modello userprofile definito come segueCome serializzare in più modelli usando DjangoRestFramework

class UserProfile(models.Model): 
    user = models.OneToOneField(settings.AUTH_USER_MODEL) 
    biography = models.TextField() 

quando mi definisco un serializzatore per la creazione di un nuovo utente, come faccio a farlo serializzare i dati in sia per l'utente modello e il modello userProfile?

risposta

18

Hai solo bisogno di definire un serializzatore per ciascuno, e collegare l'uno all'altro, come segue:

from rest_framework.serializers import ModelSerializer 

class UserSerializer(ModelSerializer): 
    """ 
    A serializer for ``User``. 
    """ 
    class Meta(object): 
     model = User 


class UserProfileSerializer(ModelSerializer): 
    """ 
    A serializer for ``UserProfile``. 
    """ 
    user = UserSerializer() 

    class Meta(object): 
     model = UserProfile 

È quindi possibile utilizzare UserProfileSerializer per aggiornare (o eseguire altre azioni a) un profilo utente e la sua istanza utente.

Problemi correlati