Найти - Пользователи
Полная версия: django rest связанные поля
Начало » Django » django rest связанные поля
1
papuas
Привет всем!
Подскажите пожалуйста как работает сериализация.
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
нашел вот это:
 class HostSerializer(ModelSerializer): 
    family = serializers.SlugRelatedField(many=True, read_only=True, slug_field='name')
    class Meta:
        model = Host
        fields = ('hostname', 'family')

получилось вот так:
 "family": [
    "cisco"
],
пока все равно не понятно как получить желаемый резалт.
papuas
отбой, разобрался.
custom relational fields помог.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB