2014-09-13 86 views
0

这可能是重复的,但我似乎无法找到任何内容,因为没有有用的关键字。Django-rest:显示非主键字段

厂商在汽车的外键:

class manufacturer(models.Models): 
    id = models.AutoField(primary_key=True) 
    name = models.CharField(unique=True, max_length=64) 

class cars(models.Model): 
    id = models.AutoField(primary_key=True) 
    name = models.CharField(unique=True, max_length=64) 
    manufacturer = models.ForeignKey('Manufacturer') 

现在,我有车API序列化到它包含的所有字段(ID,名称,制造商)。但是,“制造商”字段显示制造商类别的ID。

问题:如何在汽车的API中显示制造商的名称,而不是制造商的ID?

回答

0

我没有很多的经验与django-rest-framework但它看起来像你需要create a serializer,这样的关系考虑,将自定义对象JSON准备返回给用户的转换。

manufacture_app/serializers.py将这个:

from rest_framework import serializers 

class CarsSerializer(serializers.ModelSerializer): 
    manufacturer_name = serializers.RelatedField(source='manufacturer') 

    class Meta: 
     model = Cars 
     fields = ('id', 'name', 'manufacturer_name') 

,并确保您的__unicode__函数返回正确的名称:

class Manufacturer(models.Models): 
    .... 

    def __unicode__(self): 
     return self.name 
+0

谢谢,我有一个很难理解的文档。你对学习Django/Rest有什么建议吗?这也是我第一次学习网络开发。 – imagineerThat 2014-09-14 05:09:30

+0

为什么模型中没有改变来描述关系? – imagineerThat 2014-09-14 20:11:39