User lookup:
/api/users/randall
Speaker lookup:
/api/speakers/randall
Speakers can't exist without a user but not all users are speakers.
User lookup:
/api/users/randall
Speaker lookup:
/api/speakers/randall
Speakers can't exist without a user but not all users are speakers.
from django.contrib.auth.models import User | |
class Speaker(models.Model): | |
user = models.OneToOneField(User) |
class UserSerializer(serializers.HyperlinkedModelSerializer): | |
class Meta: | |
model = User | |
fields = ('url', 'username', 'email', 'groups') | |
lookup_field = 'username' | |
class SpeakerSerializer(serializers.HyperlinkedModelSerializer): | |
user = serializers.HyperlinkedRelatedField( | |
view_name='user-detail', | |
read_only=True, | |
lookup_field='username' | |
) | |
class Meta: | |
model = Speaker | |
lookup_field = 'user' |
class UserViewSet(viewsets.ModelViewSet): | |
queryset = User.objects.all() | |
serializer_class = UserSerializer | |
lookup_field = 'username' | |
class SpeakerViewSet(viewsets.ModelViewSet): | |
queryset = Speaker.objects.all().select_related('user') | |
serializer_class = SpeakerSerializer | |
lookup_field = "user" | |