Создание вложенных сериализаторов в Django

Не получается добавить поле с данными из другой модели.
Руководствовался: этим и этим

Модели:

class Cards(models.Model):
    name = models.CharField(max_length=100, verbose_name='Имя карты')
    number = models.IntegerField(verbose_name='Номер карты')
    id_set = models.ForeignKey('Sets', on_delete=models.CASCADE, verbose_name='ID сета')
    card_img = models.CharField(max_length=50)

class User_cards(models.Model):
    id_user = models.ForeignKey(User, on_delete=models.CASCADE,)
    id_cards = models.IntegerField()
    count = models.IntegerField(default=0)
    foil = models.IntegerField(blank=True)
    language = models.IntegerField(blank=True, default='01000000000')

Вьюха:

class CardsView(generics.ListAPIView):
    serializer_class = CardSerializers
    filter_backends = (DjangoFilterBackend,)
    filterset_class = CardsFilter

    def get_queryset(self):
        cardnames = Cards.objects.all()
        return cardnames

Серилизаторы:

class UserCardSerializers(serializers.ModelSerializer):
    class Meta:
        model = User_cards
        fields = ('__all__',)

class CardSerializers(serializers.ModelSerializer):
    user_set = UserCardSerializers(many=True, read_only=True)

    class Meta:
        model = Cards
        fields = ('name', 'user_set')

На выходе - просто поля модели Cards

На выходе куда? Все выглядит нормально, только __all__ должен быть простой строкой, а не кортежем, и непонятно куда ведет внешний ключ id_set. В связи "один ко многим" внешний ключ может быть только с одной стороны (у одной модели). корректное отображение вложенного сериалайзера в сваггере

Вернуться на верх