Мне нужна следующая логика: Пользователь отправляет объекты на сервер, но мне нужно, чтобы объекты, которые он опубликовал ранее, будут удалены до создания новых объектов. Есть ли какой-то метод, который называется, например, до метода hydrate(), в котором я мог бы получить доступ к авторизованному объекту пользователя?Как запустить метод, который будет выполняться до гидрата в django-tastypie
0
A
ответ
0
Если ваша проблема касается создания, вы можете переопределить метод obj_create. Он получает объект запроса, чтобы вы могли получить доступ к request.user. Нечто подобное должно работать для вас:
class SomeResource(...):
def obj_create(self, bundle, request=None, **kwargs):
user = request.user if request else None
# ...
if user:
# delete objects here
# ...
super(SomeResource, self).obj_create(bundle, request, **kwargs)
obj_create будет работать для каждого объекта, и мне нужно, чтобы запустить этот код только один раз, в начале обработки запроса ... –
Затем переопределить отправку() и поместить ваш код где-то до «response = method (request, ** kwargs)». У вас также есть запрос, но он выполняется один раз за запрос. – kgr
Да, это может сработать. Также я нашел другой способ: переопределить patch_list(). К сожалению, либо в dispatch(), либо в patch_list(), у меня есть объект запроса до того, как авторизация сделана - так что у меня нет объекта User. Но он частично решает мою проблему. –