简体   繁体   中英

Django follow primary key JSON

I relatively new to Django, but im trying to return the complete JSON document for the following data model.

class Wheels(models.Model):
   w_name = models.CharField(max_length=255)
   w_weight = models.IntegerField(default=200)
   w_size = models.CharField(max_length=200)
   w_durability = models.IntegerField(default=45)

   def __str__(self):
    return self.w_name

class Chassis(models.Model):
    c_owner = models.CharField(max_length=255)
    c_year = models.IntegerField(default=1900)
    c_model = models.CharField(max_length=255)
    c_wheels = models.ForeignKey(Wheels)
    c_weight = models.IntegerField(default=20)

    def __str__(self):
      return self.c_model`

Right now the code returns just:

{
"id": 1,
"c_owner": "Mike",
"c_year": 1969,
"c_model": "Chevy",
"c_weight": 3500,
"c_wheels": 1
}

But instead of the 1 for wheels i would like it to follow the wheels table

Views:

class ChassisList(ModelViewSet):
   queryset = Chassis.objects.all()
   serializer_class = ChassisSerializer


class WheelsList(ModelViewSet):
   queryset = Wheels.objects.all()
   serializer_class = WheelSerializer

Serializers:

class WheelSerializer(serializers.ModelSerializer):
   class Meta:
    model = Wheels
    fields = ('__all__')

class ChassisSerializer(serializers.ModelSerializer):
   class Meta:
    model = Chassis
    fields = ('__all__')

Simple solution:

class ChassisSerializer(serializers.ModelSerializer):
   class Meta:
    model = Chassis
    fields = ('__all__')
    depth = 1

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM