【发布时间】:2016-02-08 15:11:57
【问题描述】:
我使用 Django 作为服务器端,使用 Angular 作为客户端。
我想从我的 django rest api 后端获取数据。 我看到了很多关于从已经存在的模块中获取数据的教程。但是,如果我想检索由多个模块组合而成的数据怎么办?
例如,我有两个模块预订和俱乐部。我想检索包含来自这两个模块的数据的 json 对象,用于特定的俱乐部 ID。
模块 -
class Club(models.Model):
name = models.CharField(max_length=1024)
image_path = models.CharField(max_length=1024)
class Reservation(models.Model):
club = models.ForeignKey('Club')
user = models.CharField(max_length=1024)
is_paid = models.BooleanField(default=False)
序列化器 -
class ReservationSerializer(serializers.ModelSerializer):
class Meta:
model = Reservation
fields = ('club', 'user')
class ClubSerializer(serializers.ModelSerializer):
class Meta:
model = Club
fields = ('id', 'name', 'surfaces')
视图集 -
class ReservationViewSet(generics.ListAPIView):
serializer_class = ReservationSerializer
queryset = Reservation.objects.all()
filter_backends = (filters.DjangoFilterBackend,)
filter_fields = ('id', 'club')
class ClubViewSet(generics.ListAPIView):
queryset = Club.objects.all()
serializer_class = ClubSerializer
filter_backends = (filters.DjangoFilterBackend,)
filter_fields = ('id', 'name')
所以,对于这个例子,我希望当我得到这个 url -
http://127.0.0.1:8000/api/initial_data?club=2
它将运行一个执行某些逻辑的 ViewSet,然后返回这种格式的 json -
{club_id: 2, reservations: {1:"John", 2:"Doe", 3:"Bob"} }
更一般地说 - 我如何返回我自己的自定义 json,其中包含来自多个模块的数据,以及给定的 URL 参数(返回客户端)?
编辑 - 如果我想返回一个简单的 JSON,我应该如何使用 django DRF,考虑到每个视图集都被映射到模型/序列化器的事实?
也许使用简单的 JsonResponse..?
【问题讨论】:
标签: python json django django-rest-framework