Wpis z mikrobloga

#django #djangorestframework #drf #programowanie #python

mam coś takiego: zwykły model User z django.contrib.auth i model Profile, który ma usera jako ForeignKey
class Profile(models.Model):
    user = models.ForeignKey(User, related_name='profile')
    # ofc jakieś inne pola tutaj

mam też model Activity, który ma ForeignKey(User), ale nie ma pola Profile i teraz próbuję zrobić zagnieżdżony serializer:

class ActivitySerializer(ModelSerializer):
    user = UserSerializer()
    profile = ProfileSerializer() # tutaj jest mój problem, chciałbym na podstawie Usera pobrać Profile

    class Meta:
        model = Activity
        fields = ('id', 'user', 'profile')

Chciałbym się jakoś dostać do profilu w tym serializerze i nie mam pojęcia, jak to zrobić. Czy ktoś z was wie?
  • 8
jest jakies serializers.SerializerMethodField()


@Tank1991: udało się bardzo pokrętną metodą xD

class ActivitySerializer:
    profile = SerializerMethodField()
    def get_profile(a, b):
        return ProfileSerializer(Profile.objects.get(pk=b.user.profile.pk)).data

co jest okrutnie brzydkie

@spokoj

source='user.profile'
a to też działa i tego użyję, dziękuję bardzo wszystkim :3