Получить полные поля во вложенной модели.Django Rest Framework - PullRequest
0 голосов
/ 12 декабря 2018

У меня есть 2 класса моделей:

class CustomUser(AbstractUser):

    username = models.CharField(max_length=30, unique=True)

    tags = models.ManyToManyField('events.Tag', related_name='user_tag', blank=True)

class Tag(models.Model):
    name = models.CharField(unique=True, max_length=50)

И сериализаторы:

class UserSerializer(serializers.ModelSerializer):
    tags = TagSerializer(many=True)
    class Meta:
         ...

class TagSerializer(serializers.ModelSerializer):
    class Meta:
        lookup_field = 'name'
        model = Tag
        fields = ('id', 'name')

Когда я делаю запрос get, я получаю что-то вроде этого:

 "data": {
    "type": "CustomUser",
    "id": "6",
    "attributes": {
        "username": "mercer",
    },
    "relationships": {
        "tags": {
            "data": [
                {
                    "type": "Tag",
                    "id": "1"
                }
            ]
        },

    }
}

Я хочу получить поле «Имя» тега в пользовательском представлении:

"type": "Tag",
"id": "1",
"name":"name"

И я хочу сделать запрос на исправление для добавления тега к пользователю.

Я могу использовать SerializerMethodField(), но так я не смогу добавить теги

1 Ответ

0 голосов
/ 14 декабря 2018

Проблема была с настройками остальных фреймворков.Я написал там пользовательские классы рендеринга json и получил эту форму вывода.Теперь я удалил его, и все в порядке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...