У меня есть некоторый существующий код python, который использует django-piston, который возвращает словарь в качестве ответа. Например:Как манипулировать объектом ответа в django-piston?
from piston.handler import BaseHandler
class FooHandler(BaseHandler):
allowed_methods = ('GET',)
@classmethod
def create(self, request):
return { 'foo': 'bar' }
Этот код работает отлично, и сериализация в JSON с соответствующим набором заголовка HTTP (я предполагаю, что это работает какой-поршневой магией, связанную с излучателями, для бонусных очков, не стесняйтесь уточнить, как это поведение также работает, поскольку я все еще знаком с джанго-поршнем).
Мне нужно иметь возможность изменять ответ произвольным образом, например. установочные заголовки, коды состояния и т. д., не используя какое-то предварительно испеченное решение, предназначенное для определенной цели. Есть ли удобный способ доступа к объекту ответа в контексте этого кода и манипулировать им или еще не создан объект ответа? Чтобы получить доступ к объекту-ответу, мне придется его вручную создать (a la vanilla django), сериализовать словарь и установить соответствующие заголовки вручную и, таким образом, проиграть часть полезной магии джанго-поршня ?
«создать» не должно быть classmethod –
Per Поршень Wiki: «NB: Эти„методы ресурса“должны быть украшены @classmethod декоратора, так как они не всегда будут получить экземпляр себя.Например, если у вас определен UserHandler и вы возвращаете пользователя из другого обработчика, вы не получите экземпляр этого обработчика, а скорее UserHandler. » – SK9