was ist der Kontrollfluss von Django Rest Framework
Ich entwickle eine API für eine Webapp. Ich benutzte zunächst tastypie und wechselte zudjango-rest-framework (drf)
. Drf scheint mir sehr einfach zu sein. Ich beabsichtige, ein verschachteltes Benutzerprofilobjekt zu erstellen. Meine modelle sind wie folgt
from django.db import models
from django.contrib.auth.models import User
class nestedmodel(models.Model):
info = models.CharField(null=True, blank=True, max_length=100)
class UserProfile(models.Model):
add_info = models.CharField(null=True, blank=True, max_length=100)
user = models.OneToOneField(User)
nst = models.ForeignKey(nestedmodel)
Ich habe andere Modelle mit Fremdschlüsselbeziehung. Meine Serializer sind wie folgt
from django.contrib.auth.models import User, Group
from rest_framework import serializers
from quickstart.models import UserProfile, nestedmodel
class NestedSerializer(serializers.HyperlinkedModelSerializer):
class Meta:
model = nestedmodel
fields = ('info', ),
class UserSerializer(serializers.HyperlinkedModelSerializer):
class Meta:
model = User
fields = ('url', 'username', 'email', 'groups')
class GroupSerializer(serializers.HyperlinkedModelSerializer):
class Meta:
model = Group
fields = ('url', 'name')
class UserProfileSerializer(serializers.HyperlinkedModelSerializer):
user = UserSerializer()
nst = NestedSerializer()
class Meta:
model = UserProfile
user = UserSerializer(many=True)
nested = NestedSerializer(many=True)
fields = ('nst', 'user')
Ich kann Methoden wie @ überschreibcreate(self, validated_data):
ohne Probleme. Aber was ich wissen will, istto which method should the response returned by create() goes
oder mit anderen WortenWhich method calls create()
. In tastypieResources.py
ist die zu überschreibende Datei, um benutzerdefinierte Methoden zu implementieren. Und Resources.py enthält die Reihenfolge, in der Methoden aufgerufen werden. Welche Datei in drf dient demselben Zweck und zeigt den Kontrollfluss wie Resources.py in tastypi