Как расширить request.user с собственными функциями в django? - PullRequest
0 голосов
/ 25 февраля 2010

Я видел какой-то изящный код в документации по django-рейтингу и хотел создать нечто подобное После двухнедельного поиска в Google я понятия не имел, как это сделать.

Может быть, вы могли бы помочь мне, что искать или где взять некоторые документы?

Код из django-рейтинговых документов:

...
response = AddRatingView()(request, **params)
    if response.status_code == 200:
        if response.content == 'Vote recorded.':
            request.user.add_xp(settings.XP_BONUSES['submit-rating'])
        return {'message': response.content, 'score': params['score']}
    return {'error': 9, 'message': response.content}
...

Моя проблема:

request.user.add_xp(settings.XP_BONUSES['submit-rating'])

Так что я хотел бы сделать что-то вроде этого:

request.user.my_shiny_function(foobar)

Спасибо заранее, Томас

Ответы [ 2 ]

1 голос
/ 25 февраля 2010

Проверьте модели прокси: http://docs.djangoproject.com/en/dev/topics/db/models/#id8

0 голосов
/ 25 февраля 2010

Я думаю, что пример кода, который вы просматриваете, кажется, был взят откуда-то еще (он не является частью кода django-Rating - простой grep -ir "add_xp" в исходном каталоге показывает, что текст находится только в Readme.rst) .

Если бы вы могли объяснить, зачем вам нужна функция, которую вы ищете здесь, возможно, мы могли бы помочь еще немного. В то же время вы можете посмотреть свой собственный пользовательский бэкэнд , расширить модель по умолчанию User и добавить к ней другие "изящные" функции:).

...