1
我正在使用DjangoRestApi,雖然它的工作原理與基於queryset(基於orm的)視圖的魅力一樣,但我努力使視圖使用不同的後端以相同的方式運行orm基於的觀點。值得注意的是,我想添加過濾器並讓它們自動投射和驗證。django-rest-framework非基於orm的過濾
僞代碼如下:
class NewsFilter(django_filters.FilterSet):
category = django_filters.NumberFilter(name='category')
limit = django_filters.NumberFilter(name='limit')
page = django_filters.NumberFilter(name='page')
class NewsView(generics.APIView):
filter_class = NewsFilter
def get(self, request):
filters = self.filter_class(??) # not sure, what to put here
payload = logic.get_business_news(**filters.data) # same
return Response(payload, status=status.HTTP_200_OK)
任何暗示如何解決問題,將不勝感激。
最終目標是:
- 用戶類型的東西放到網址或通過POST,Django的休息截取相關值發送,把它們提取出來,他們鑄就成正確的類型,並返回一個字典
- 過濾器因爲他們如果串行器是基於ORM顯示
我已經稍微編輯了原始問題來澄清我在找什麼,因爲這個答案是a)非常不完整,b)我有這樣的感覺,沒有回答我的問題 – Drachenfels
從根本上講,'FilterSet'對查詢集進行操作。你有查詢設置,你正在過濾嗎?如果沒有,你不能使用'FilterSet'。 –
我不想使用queryset,因爲我不使用ORM,我所需要的是在/ api/endpoint中呈現表單,以便開發人員和其他非技術性人員可以使用api進行測試/使用,而無需手動鍵入json有效載荷等。我開始意識到,django-rest-framework實際上是非常有限的框架,只有一個工作流程。 :/ – Drachenfels