2017-04-01 30 views
0

我對Django比較新,但是我試圖返回下面數據模型的完整JSON文檔。Django按照主鍵JSON

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` 

眼下代碼返回剛:

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

但代替1輪我想它遵循車輪表

瀏覽:

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


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

串行器:

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

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

的可能的複製[?我怎樣包括使用Django的REST框架模型相關領域(http://stackoverflow.com/questions/14573102/how-do-i-include -related-model-fields-using-django-rest-framework) – iklinac

回答

0

簡單的解決方案:

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

謝謝Serg!我喜歡那些解決方案:) – MikeM