Уведомления

Группа в Telegram: @pythonsu

#1 Авг. 21, 2018 16:31:00

papuas
Зарегистрирован: 2015-06-19
Сообщения: 159
Репутация: +  6  -
Профиль   Отправить e-mail  

django rest связанные поля

Привет всем!
Подскажите пожалуйста как работает сериализация.
models.py

 class Family(models.Model):
    class Meta:
        verbose_name_plural = 'family'
        name = models.CharField(max_length=10)
    def __str__(self):
class Host(models.Model):
    hostname = models.CharField('Hostname', max_length=200)
    family = models.ManyToManyField(Family, related_name="hosts")
    def __str__(self):
        return self.hostname

serializer.py
 class FamilySerializer(ModelSerializer):
    class Meta:
        model = Family
        fields = ('name',)
class HostSerializer(ModelSerializer): 
    class Meta:
        model = Host
        fields = ('hostname', 'family')
        depth = 2
выхлоп:
 "family": [
    {
      "id": 7,
      "name": "cisco"
    }
  ],
а хочется вот так:
 "family": "cisco"



Отредактировано papuas (Авг. 21, 2018 16:32:16)

Офлайн

#2 Авг. 21, 2018 17:12:18

papuas
Зарегистрирован: 2015-06-19
Сообщения: 159
Репутация: +  6  -
Профиль   Отправить e-mail  

django rest связанные поля

нашел вот это:

 class HostSerializer(ModelSerializer): 
    family = serializers.SlugRelatedField(many=True, read_only=True, slug_field='name')
    class Meta:
        model = Host
        fields = ('hostname', 'family')

получилось вот так:
 "family": [
    "cisco"
],
пока все равно не понятно как получить желаемый резалт.

Отредактировано papuas (Авг. 21, 2018 17:13:49)

Офлайн

#3 Авг. 22, 2018 05:56:05

papuas
Зарегистрирован: 2015-06-19
Сообщения: 159
Репутация: +  6  -
Профиль   Отправить e-mail  

django rest связанные поля

отбой, разобрался.
custom relational fields помог.

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version