2013-05-07 28 views
6

Ich habe ein Benutzerprofilmodell definiert, möchte aber einen API-Endpunkt haben, der alle Benutzerdaten in beiden Modellen speichert. Damit meine ich, ich das Benutzermodell verwende, und ich habe ein Benutzerprofil-Modell alsSerialisieren in mehrere Modelle mit DjangoRestFramework

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

, wenn ich einen Serializer für die Erstellung eines neuen Benutzers definieren, wie bekomme ich es Daten in serialisiert werden sowohl für den Benutzer Modell und das userProfile-Modell?

Antwort

18

Sie müssen nur einen Serializer für jeden definieren, und einem zum anderen befestigen, wie folgt:

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 

Sie dann UserProfileSerializer (oder andere Aktionen) ein Benutzerprofil zu aktualisieren, verwenden könnte und seine Benutzerinstanz.

Verwandte Themen