Мне знакомо, что я могу установить always_return_data
в True
, чтобы сервер возвращал сериализованные данные обратно на POST
и PUT
. Но есть ли способ, который я могу запросить, чтобы данные были возвращены на конкретный вызов POST
, а не все звонки POST/PUT
?Как я могу явным образом запросить данные по POST
ответ
Я бы предложил добавить дополнительный параметр в сообщение, по которому вы хотите вернуть данные. Если параметр существует в почтовом переменных добавить необходимые данные в пачку в дигидрате
Вы можете установить always_return_data
в True
и вручную удалить все данные из пучка либо в или методе dehydrate
alter_detail_data_to_serialize
но это только приведет к пустой объект JSON (или любой другой сериализатор, который вы предпочитаете), который не является пустым ответом.
Возможно, наиболее явным способом для желаемого поведения было бы переопределить функции <method>_list
и <method>_detail
и реализовать решение о возврате данных или нет в соответствии с вашими потребностями.
Вот пример post_list
, который принимает GET-параметр с именем return_data
решить:
def post_list(self, request, **kwargs):
deserialized = self.deserialize(request, request.raw_post_data, format=request.META.get('CONTENT_TYPE', 'application/json'))
deserialized = self.alter_deserialized_detail_data(request, deserialized)
bundle = self.build_bundle(data=dict_strip_unicode_keys(deserialized), request=request)
updated_bundle = self.obj_create(bundle, **self.remove_api_resource_names(kwargs))
location = self.get_resource_uri(updated_bundle)
return_data = updated_bundle.request.GET.get('return_data', None)
if not return_data is None:
updated_bundle = self.full_dehydrate(updated_bundle)
updated_bundle = self.alter_detail_data_to_serialize(request, updated_bundle)
return self.create_response(request, updated_bundle, response_class=http.HttpCreated, location=location)
else:
return http.HttpCreated(location=location)
По моему мнению, лучший способ, чтобы переопределить метод обезвоживают и установить always_return_data = True:
class SomeModelResource(ModelResource):
class Meta:
queryset = SomeModel.objects.all()
always_return_data=True
def dehydrate(self, bundle):
if request.META['REQUEST_METHOD'] == 'POST' and\
request.POST.get('param', None)=='PARAM':
bundle.data = dict(id=bundle.obj.pk,
name=bundle.obj.name)
return bundle
- 1. Как явным образом получить данные post в Spring MVC?
- 2. Как явным образом вызвать TIBDataSet.RefreshSQL
- 3. Как я могу запросить данные Memcache?
- 4. Могу я явным образом проверить на отмену асинхронного вычисления?
- 5. Должен ли я явным образом уничтожать объекты по порядку
- 6. явным образом выкладываю UI
- 7. Как явным образом выполняю задачи?
- 8. Как явным образом освободить канал?
- 9. Как я могу фильтровать данные таким образом?
- 10. Как явным образом вызывать цель по умолчанию при вызове make?
- 11. Как я могу запросить переменную?
- 12. Как явным образом установить значок панели задач?
- 13. Как явным образом вызывать метод по умолчанию из динамического прокси?
- 14. Как я могу запросить подмножество записей ActiveModel?
- 15. Я могу запросить показания датчиков по желанию?
- 16. Как явным образом установить флажок не отмечен
- 17. Как явным образом предоставить неявный аргумент?
- 18. Почему явным образом пишу «частный»?
- 19. Как я могу запросить данные Rails ActiveRecord, хранящиеся в массивах
- 20. Как я могу запросить только новые данные (Parse/Android)?
- 21. Индексатор явным образом реализован IFormattable
- 22. Как явным образом назвать lua gc?
- 23. Как я могу запросить дату?
- 24. Как я могу запросить дубликаты?
- 25. Как я могу захватить данные по потоку?
- 26. asp: как перезагрузить страницу явным образом
- 27. Как явным образом создать экземпляр функции шаблона?
- 28. Как явным образом перемещать курсор в python
- 29. Как явным образом использовать типы lib.d.ts?
- 30. Как я могу выводить данные по-индивидуальному?