Does anyone know how to get userprofile detials from 'PersonalDetails' through by using the User table
Modal Connection flow
User -> Representative -> PersonalDetails
Retrive data flows
User <- Representative <- PersonalDetails
Models.py
class User(AbstractBaseUser, PermissionsMixin, BaseFields):
first_name = models.CharField(max_length=255)
last_name = models.CharField(max_length=255, blank=True)
representative = models.ForeignKey(Representative,blank=True,null=True,on_delete=models.SET_NULL)
class Representative(BaseFields):
personal_details = models.ForeignKey(PersonalDetails,on_delete=models.CASCADE)
role=models.CharField(max_length=250,blank=True,null=True)
class PersonalDetails(models.Model):
name_en = models.CharField(max_length=250)
dob = models.DateField()
Serializer.py
class UserProfileSerializer(ModelSerializer):
class Meta:
model = User
fields = ('id','representative')
Views.py
class UserProfileDetailView(RetrieveUpdateAPIView):
http_method_names = ['get']
permission_classes = [AllowAny,]
queryset = PersonalDetails.objects.all()
serializer_class = UserProfileSerializer
def get(self, *args, **kwargs):
data = {}
user = User.objects.get(id=kwargs.get('pk'))
representative_id = user.representative
personal_details_id = Representative.objects.get(id=representative_id.id)
personal_details = PersonalDetails.objects.get(id=personal_details_id.id)
if personal_details:
serializer = UserProfileSerializer(personal_details)
return Response(serializer.data,status.HTTP_200_OK)