2012-03-21 1 views
0

Мне нужна следующая логика: Пользователь отправляет объекты на сервер, но мне нужно, чтобы объекты, которые он опубликовал ранее, будут удалены до создания новых объектов. Есть ли какой-то метод, который называется, например, до метода hydrate(), в котором я мог бы получить доступ к авторизованному объекту пользователя?Как запустить метод, который будет выполняться до гидрата в django-tastypie

ответ

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) 
+0

obj_create будет работать для каждого объекта, и мне нужно, чтобы запустить этот код только один раз, в начале обработки запроса ... –

+0

Затем переопределить отправку() и поместить ваш код где-то до «response = method (request, ** kwargs)». У вас также есть запрос, но он выполняется один раз за запрос. – kgr

+0

Да, это может сработать. Также я нашел другой способ: переопределить patch_list(). К сожалению, либо в dispatch(), либо в patch_list(), у меня есть объект запроса до того, как авторизация сделана - так что у меня нет объекта User. Но он частично решает мою проблему. –