2014-11-06 88 views
0


我目前工作的一个Web应用程序负荷模型和相关数据

服务器端:

客户端:


我的问题是关于与Restangular库中的关系映射。

例:

controller.js

Restangular.all('Cars').getList().then(function(_cars){ 
    $scope.cars= _cars; 
}); 


_list.html

<tr ng-repeat="car in cars"> 
    <td>{[project.id]}</td> 
    <td>{[project.owner.name]}</td> <!-- owner is not mapped, (project.owner == ID) --> 
</tr> 


我的代码:

Django的:models.py

class Person(models.Model): 
    #.... 
    name = models.CharField(db_index=True, max_length=200) 

class Car(models.Model): 
    #.... 
    owner = models.ForeignKey(Person, blank=True, null=True) 

Django的:serializers.py

class CarSerializer(serializers.ModelSerializer): 
    class Meta: 
     model = Car 
     fields = ('id', /*...*/, 'owner') 

Django的:view.py

class CarList(generics.ListCreateAPIView): 
    queryset = Car.objects.all() 
    serializer_class = CarSerializer 

我希望有一种方法充分映射我的对象easil y,我不反对Restangular图书馆。

回答

1

看起来你需要定义一个串行的Person并指它在你的CarSerializer

class PersonSerializer(serializers.ModelSerializer): 
    class Meta: 
     model = models.Person 

    fields = ('id', ...) 


# Then use that serializer in CarSerializer: 
class CarSerializer(serializers.ModelSerializer): 
    owner = PersonSerializer(source='owner') 

    class Meta: 
     model = Car 
     fields = ('id', /*...*/, 'owner') 

使用DRF可浏览API来获取所需的数据检查JSON有效载荷。

+0

完美!复制/过去的作品100% – 2014-11-07 08:57:08