我希望特定的django-tastypie
模型資源在列出對象時只有一個字段子集,而在顯示詳細信息時只有所有字段。這可能嗎?django-tastypie可以在單個資源的列表和詳細視圖中顯示一組不同的字段嗎?
9
A
回答
14
你將不得不在實際ModelResource指定的所有字段,然後重寫get_list
方法來過濾出你想顯示的字段。請參閱get_list
的內部實現Resource
以瞭解如何覆蓋它。
但是,請注意,這隻會對GET請求應用,你仍然應該能夠發佈對資源/ PUT/PATCH所有領域,如果你的授權限制,您可以這樣做。
在堅果殼中,您希望在對由obj_get_list
返回的所有ORM對象調用full_dehydrate之前熱修補內部字段列表。
或者,您可以讓完全脫水機制發生,只是在它的結尾處,刪除你不希望顯示,如果你不關心儘可能多壓榨出的速度儘可能的字段。當然,只有在由於get_list調用而調用URL時,您才需要執行此操作。這個alter_list_data_to_serialize(request, to_be_serialized)
有一個方便的方法。
只要做到:
class SomeResource(Resource):
class Meta(...):
...
field_list_to_remove = [ 'field1', 'field2' ]
...
def alter_list_data_to_serialize(request, to_be_serialized):
for obj in to_be_serialized['objects']:
for field_name in self._meta.field_list_to_remove:
del obj.data[field_name]
return to_be_serialized
0
有GitHub上的open issue for this,與一些變通的建議那裏。
18
0
也可以使用脫水(自我,捆綁)方法。
def dehydrate(self, bundle): del bundle.data['attr-to-del] return bundle
相關問題
- 1. 表視圖不顯示詳細視圖
- 2. tableview到一個細節視圖,顯示另一個表視圖,並可以有自己的詳細視圖
- 3. 列表視圖詳細視圖不顯示任何東西
- 4. 變量(字段?)不會顯示在Django通用詳細視圖
- 5. 列表視圖在主/詳細視圖中作爲詳細片段
- 6. Yii2數組元素在詳細視圖中顯示在不同的行中
- 7. 在同一頁上有編輯表單和詳細視圖
- 8. 表格顯示詳細視圖並返回到tableview中的同一個地方
- 9. 顯示MVC中的值列表詳細信息視圖
- 10. 在詳細視圖中顯示UIDocumentInteractionController
- 11. 在MGSplitViewController中以縱向模式顯示主和詳細視圖
- 12. UISplitView在詳細信息窗格中顯示不同視圖
- 13. 詳細信息視圖「選定的字段」「字段」窗口的列表框顯示沒有字段
- 14. 使用mvc3在一個視圖中顯示創建和詳細視圖
- 15. SQL在同一行顯示不同時間段的詳細行和集合
- 16. Asp ModalPopupExtender不顯示詳細視圖
- 17. 列表視圖詳細信息不能正確顯示數據
- 18. Android的列表視圖到另一個詳細信息視圖
- 19. 如何在mvc中顯示單個視圖的編輯和詳細信息
- 20. 詳細視圖不顯示從表視圖
- 21. 我可以將SSRS詳細信息組顯示爲單獨的報告嗎?
- 22. AutoComplete Edittext未顯示過濾的列表視圖詳細信息
- 23. 顯示多個字段列表視圖
- 24. Django tastypie:詳細請求中的資源顯示與列表請求中的不同
- 25. UISearchBar顯示詳細視圖的UITableView
- 26. 在MVVM的ListView中顯示Wpf中的不同視圖(縮略圖,詳細列表)
- 27. .NET MVC - 列表和詳細視圖
- 28. Angularjs列表和詳細視圖
- 29. 我可以在ListView的詳細模式下顯示鏈接嗎?
- 30. 我可以在ListView的詳細模式下顯示鏈接嗎?
這是一個好主意,我很感謝你的回答。不過,我想知道是否有辦法延遲原始查詢中的字段,以避免通過網絡發送一些相當大的字段。 – Carson
然後我會建議你簡單地創建2個資源,一個顯示所有字段,另一個只顯示你的子集在同一個模型上。這是沒有太多開銷的最簡單的方法。如果你堅持認爲它是相同的資源,那麼你可以按照我最初的建議來重載get_list,以便在從ORM獲取它們並序列化它們時只包含你的字段的子集。 – astevanovic
應該有'del obj.data [field_name]'。 – Mitar