Django-Tastypie: как получить доступ к объекту запроса (Http) в Bundle? - PullRequest
3 голосов
/ 12 сентября 2011

Мне нужен доступ к объекту HttpRequest в методе обезвоживания моего Ресурса.

В документации показано, что bundle.request является допустимым атрибутом (он находится на странице resources.html).Когда я пытаюсь добавить его в свой код, я получаю сообщение об ошибке, утверждающее, что в «объекте» нет атрибута «запрос».Что дает?

Ответы [ 2 ]

3 голосов
/ 12 сентября 2011

У объекта пакета есть атрибут запроса.

class Bundle(object):
    """
    A small container for instances and converted data for the
    ``dehydrate/hydrate`` cycle.

    Necessary because the ``dehydrate/hydrate`` cycle needs to access data at
    different points.
    """
    def __init__(self, obj=None, data=None, request=None):
        self.obj = obj
        self.data = data or {}
        self.request = request or HttpRequest()

В любом случае, вы можете переопределить метод Resource выше dehydrate в стеке вызовов.

Не могли бы вы показать код?

2 голосов
/ 25 ноября 2011

У меня была та же проблема, но я нашел правильный ответ здесь: http://groups.google.com/group/django-tastypie/tree/browse_frm/thread/801f44af3f2dbe7b/a36f303380eacf96

кажется, что у django-tasty-pie версии 0.9.9 не было этого атрибута, но версия 0.9.10 имеет!

, так что если вы используете buildout, загляните в buildout.cfg по версиям: поиск django-tastypie = 0.9.9

удалите этот файл и посмотрите, что выберет ваша установка, или замените его:

django-tastypie = 0.9.10

У меня все еще есть эта проблема, поэтому открыла новую ссылку, см .:

django-tastypie: Невозможно получить доступ к bundle.request в дегидрате (самостоятельно, связка)

В приведенном выше вопросе я обнаружил, что использование 0.9.10 недостаточно, бета-версия 1.0.0 должна помочь.

...