Reputation: 23
class User(models.Model):
name = models.CharField(max_length=100)
def __str__(self):
return self.name
class Address(models.Model):
name = models.CharField(max_length=100)
user = models.ForeignKey(User, related_name='address')
def __str__(self):
return self.name
How can i retrieve the address of a specific user using drf serializers ?
Upvotes: 2
Views: 179
Reputation: 139
Step1: Write Serializer for both User Model and Address Model. serializers.py
UserSerializer(serializers.ModelSerializer):
"""A serializer for User Model"""
address = AddressSerializer(read_only=True, many=True)
class Meta:
model = User
fields = "__all__"
extra_fields = ["address"]
AddressSerializer(serializers.ModelSerializer):
"""A serializer for Address Model"""
class Meta:
model = Adddress
fields = "__all__"
Step 2: Write Query for your User Model for serialize your data.
views.py:
queryset = User.objects.all().prefetch_related("address")
serializer = UserSerializer(data=queryset)
print(serializer.data) # you will get all your user with their addresses.
Upvotes: 2