我正在嘗試獲取一個 API 端點api/v1/device-groups/?customer=<customer_uuid>,該端點返回與customer_uuidURL 中給定的相關(guān)的設(shè)備組,但我不確定如何創(chuàng)建它。models.pyclass Customer(models.Model): customer_uuid = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False, db_index=True) customer_name = models.CharField(max_length=128, unique=True)class DeviceGroup(models.Model): group_uuid = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False, db_index=True) customer_uuid = models.ForeignKey(Customer, on_delete=models.DO_NOTHING) device_group_name = models.CharField(max_length=20) color = models.CharField(max_length=8) is_default = models.BooleanField(default=False)serializers.pyclass CustomerSerializer(serializers.HyperlinkedModelSerializer): class Meta: model = Customer fields = ('customer_name', 'customer_uuid')class DeviceGroupSerializer(serializers.HyperlinkedModelSerializer): customer = CustomerSerializer(many=False, read_only=True, source='customer_uuid') class Meta: model = DeviceGroup fields = ('device_group_name', 'group_uuid', 'color', 'is_default', 'customer')我不知道我應(yīng)該在我的views.py和urls.pyurls.pyrouter = routers.DefaultRouter()router.register(r'device-groups', views.DeviceGroupViewSet, base_name='device-groups')urlpatterns = [ url(r'api/v1/', include(router.urls)),]我根據(jù) GET 請求views.py返回與此相關(guān)的所有設(shè)備組customer_uuid/api/v1/device-groups/?customer_uuid=0bc899e9-4864-4183-8bcd-06937c572143/class DeviceGroupViewSet(viewsets.ModelViewSet): serializer_class = DeviceGroupSerializerqueryset = DeviceGroup.objects.filter(customer_uuid='0bc899e9-4864-4183-8bcd-06937c572143')我試圖get_queryset像這樣覆蓋,但結(jié)果是KeyErrorviews.pyclass DeviceGroupViewSet(viewsets.ModelViewSet): serializer_class = DeviceGroupSerializer def get_queryset(self): return DeviceGroup.objects.filter(customer_uuid=self.kwargs['customer_uuid'])我需要更改什么才能獲得/api/v1/device-groups/?customer=<customer_uuid>/返回過濾設(shè)備組的 API 端點?
1 回答

慕標(biāo)5832272
TA貢獻1966條經(jīng)驗 獲得超4個贊
?
在 URL之后的任何內(nèi)容都被視為查詢參數(shù)列表:?customer=<uuid>
意味著您將查詢參數(shù)傳遞customer
給您的請求。它們不是實際 URL 路徑的一部分。
這些查詢參數(shù)都是QueryDict
request.GET
由 Django添加到的。在 DRF 中,它們也可以被訪問request.data
。
添加回答
舉報
0/150
提交
取消