zwei
zwei
0
#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?
  • Najlepsze
  • Wszystkie komentarze
Tank1991
@zwei: jest jakies serializers.SerializerMethodField()
Tank1991
@zwei: a jak nie to ovverride getserializerdata(self, instance) #zawszedziala
L.....k
L.....k
swoją drogą, w django mozesz miec customowy model User ktory uprosci sprawe
https://docs.djangoproject.com/en/3.2/topics/auth/customizing/#substituting-a-custom-user-model
spokoj
@zwei: source='user.profile'
zwei
zwei Autor
0
@pansa: hm, no nie bardzo, bo DRF próbuje używać modelu podanego w Meta
'Activity' object has no attribute 'user__profile'.
zwei
zwei Autor
0
jest jakies serializers.SerializerMethodField()


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

class ActivitySerializer:
    profile
Tank1991
source='user.profile'


@zwei: jup, zaćmienie miałem :D