Skip to content Skip to sidebar Skip to footer

Django Rest Framework Nested Relationship

I'm new in using Django, I need your help So, I created a model like this models.py from django.db import models # Create your models here. class Pegawai(models.Model): name

Solution 1:

use serializers.CharField.

classBarangSerializer(serializers.ModelSerializer):
    pegawali=serializers.CharField(source="pegawali.name")
    classMeta:
        model = Barangfields= (
            'pegawai', 
            'nama_barang',
            'harga_barang',
            )

Solution 2:

Method-1

Since you are defined __str__() method in your Pegawai model, you can use StringRelatedField(...)

classBarangSerializer(serializers.ModelSerializer):
    pegawai = serializers.StringRelatedField()

    classMeta:
        model = Barangfields= (
            'pegawai',
            'nama_barang',
            'harga_barang',
        )

Method-2

use CharField

classBarangSerializer(serializers.ModelSerializer):
    pegawai = serializers.CharField(source='pegawai.name')

    classMeta:
        model = Barangfields= (
            'pegawai',
            'nama_barang',
            'harga_barang',
        )

UPDATE-1

To solve issues while creation of model objects, override the to_representation() method

classBarangSerializer(serializers.ModelSerializer):classMeta:
        model = Barang
        fields = (
            'pegawai',
            'nama_barang',
            'harga_barang',
        )

    defto_representation(self, instance):
        rep = super().to_representation(instance)
        rep['pegawai'] = instance.pegawai.name
        return rep

Solution 3:

You can change the fields value in serializer with DRF RelatedField:

classBarangSerializer(serializers.ModelSerializer):
    pegawai = serializers.RelatedField(source='pegawai.name', read_only=True)
    classMeta:
        model = Barangfields= (
                'pegawai', 
                'nama_barang',
                'harga_barang',
                )

Post a Comment for "Django Rest Framework Nested Relationship"