Tôi muốn có một tài nguyên mô hình django-tastypie
cụ thể để chỉ có một nhóm nhỏ các trường khi liệt kê các đối tượng và tất cả các trường khi hiển thị chi tiết. Điều này có thể không?Django-tastypie có thể hiển thị một tập hợp các trường khác nhau trong danh sách và xem chi tiết của một tài nguyên không?
Trả lời
Bạn sẽ phải chỉ định tất cả các trường trong ModelResource thực tế sau đó ghi đè phương thức get_list
để lọc ra chỉ các trường bạn muốn hiển thị. Xem triển khai nội bộ của get_list
trên Resource
để xem cách ghi đè. Tuy nhiên, lưu ý điều này sẽ chỉ áp dụng cho các yêu cầu GET, bạn vẫn có thể POST/PUT/PATCH trên tài nguyên với tất cả các trường nếu giới hạn ủy quyền cho phép bạn làm như vậy.
Trong vỏ hạt, bạn muốn vá nóng danh sách trường nội bộ trước khi full_dehydrate được gọi trên tất cả các đối tượng ORM được trả lại bởi obj_get_list
.
Ngoài ra, bạn có thể để cơ chế khử nước đầy đủ diễn ra và chỉ ở cuối của nó loại bỏ các trường bạn không muốn hiển thị nếu bạn không quan tâm đến việc ép ra càng nhiều càng tốt. Tất nhiên bạn sẽ cần phải làm điều này chỉ khi URL được gọi là kết quả của cuộc gọi get_list. Có một phương pháp tiện lợi cho số alter_list_data_to_serialize(request, to_be_serialized)
này.
Chỉ cần làm:
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
Có một open issue for this trên GitHub, với một số cách giải quyết đề nghị đó.
Bạn cũng có thể sử dụng thuộc tính use_in
trên một trường để chỉ định tài nguyên có liên quan để hiển thị trường. Đây có thể là list
hoặc detail
hoặc gọi lại.
Đó phải là câu trả lời chính. Rõ ràng hơn và rõ ràng hơn các phương pháp ghi đè. – Radagast
Đây là một trong những trường hợp mà bạn sẽ có thể thay đổi câu trả lời "Được chấp thuận" cho những người trong chúng ta sẽ đến sau bữa tiệc. –
Cũng có thể sử dụng phương pháp khử nước (tự, bó).
def dehydrate(self, bundle): del bundle.data['attr-to-del] return bundle
- 1. Chọn nơi thực thể chứa danh sách có tập hợp con của một danh sách khác
- 2. Các chi tiết cụ thể về Danh sách Thành viên
- 3. Hiển thị chi tiết của nhà nhập khẩu
- 4. Eclipse StatusManager không hiển thị chi tiết
- 5. Cách lấy danh sách chi tiết các bản sửa đổi của Google Documents trong API Drive
- 6. Chi tiết của ứng dụng Danh bạ iPhone Xem chi tiết
- 7. Làm cách nào để tạo danh sách và chế độ xem chi tiết cho django-taggit?
- 8. Có thể tạo một Danh sách <string> tài nguyên tĩnh trong xaml không?
- 9. Hiển thị một tệp Javascript khác nhau trong respond_to
- 10. Danh sách ASP.Net Xem EmptyItemTemplate không hiển thị
- 11. EF có lưu trữ các thực thể giữa các trường hợp khác nhau của DbContext không?
- 12. Một WrapPanel trong đó lựa chọn chia bảng để hiển thị một cái nhìn chi tiết?
- 13. FUSE - tài liệu chi tiết
- 14. Làm thế nào để hiển thị danh sách cạnh nhau trong R - một "cbind" cho danh sách?
- 15. nhật thực so sánh trình chỉnh sửa ngừng hiển thị các khác biệt chi tiết
- 16. Làm thế nào để hiển thị danh sách các tài nguyên drawables
- 17. Các biến trong các trường hợp chuyển đổi khác nhau không thể có cùng tên?
- 18. Khung công tác Django REST: Một đối tượng lồng nhau có thể truy cập thông tin chi tiết của đối tượng cha của nó trong Chế độ xem danh sách không?
- 19. iReport Hiển thị sai hiển thị giữa chi tiết băng và chân trang
- 20. Hiển thị các đối tượng từ tập hợp Tập hợp trong JSF có thể định dạng không hoạt động
- 21. Ưu điểm và nhược điểm của việc có một chi tiết cụ thể WPF trong mô hình xem
- 22. Cách kiểm tra xem một dòng có một trong các chuỗi trong danh sách không?
- 23. Hiển thị danh sách giống hệt nhau - Cột không kéo dài trên một
- 24. Django Admin: cách hiển thị các trường từ hai mô hình khác nhau trong cùng một chế độ xem?
- 25. Không hiển thị các mục một phần trong hộp danh sách WPF
- 26. XNA: Nhận một mảng/danh sách tài nguyên?
- 27. Trường nhập liệu Chrome và Firefox hiển thị khác nhau
- 28. Tất cả các hoán vị có thể có của một tập hợp các danh sách trong Python
- 29. Đọc các tập lệnh xem khác nhau?
- 30. Hiển thị các đầu của một chi nhánh?
Đây là một ý tưởng hay và tôi đánh giá cao câu trả lời của bạn. Tôi tự hỏi, mặc dù, nếu có một cách để trì hoãn các lĩnh vực từ truy vấn ban đầu để tránh gửi một số lĩnh vực khá lớn trên dây. – Carson
Sau đó, tôi sẽ đề nghị bạn chỉ cần tạo 2 tài nguyên, một tài nguyên hiển thị tất cả các trường và một trường khác chỉ hiển thị tập hợp con của bạn trên cùng một mô hình. Đó là cách đơn giản nhất mà không tốn nhiều chi phí. Nếu bạn nhấn mạnh vào nó là cùng một tài nguyên, bạn có thể làm theo đề nghị ban đầu của tôi về quá tải get_list để chỉ bao gồm tập hợp con của các trường khi tìm nạp chúng từ ORM và tuần tự hóa chúng. – astevanovic
Sẽ có 'del obj.data [field_name]'. – Mitar