我使用Django作爲服務器端和角度作爲客戶端。從Django獲取自定義的休息數據
我想從我的django rest api後端獲取數據。 我看到很多關於從已經存在的模塊中獲取數據的教程。但是如果我想要檢索由多個模塊組合的數據呢?
例如,我有兩個模塊Reservations and Clubs。我想要檢索包含來自這兩個模塊的數據的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')
所以,對於這個〔實施例,我想,當我得到這個網址 -
http://127.0.0.1:8000/api/initial_data?club=2
它會運行一個視圖集,做一些邏輯,然後返回這個格式的JSON -
{club_id: 2, reservations: {1:"John", 2:"Doe", 3:"Bob"} }
而且更一般地說 - 如何從多個模塊返回自己的自定義JSON包含數據,與給定的URL參數(回到客戶端)?
編輯 - 如果我想返回一個簡單的JSON,考慮到每個視圖映射到模型/序列化程序的事實,我應該如何使用django DRF來完成它?
也許使用簡單的JsonResponse ..?
調用[嵌套關係(http://www.django-rest-framework.org/api-guide/relations/#nested-relationships) – k4yaman
@Serjik感謝您的快速回復。但是我想從這個方法中返回一個更復雜的json,這只是一個例子。我想返回來自多個modlues組合的數據 – Sahar
@John nop,享受幫助 – Serjik