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" | |