Уведомления

Группа в Telegram: @pythonsu

#1 Окт. 4, 2010 07:34:20

fth
От:
Зарегистрирован: 2010-07-26
Сообщения: 105
Репутация: +  0  -
Профиль   Отправить e-mail  

Персонализированное RSS

В проекте необходимо отдавать пользователю личную RSS (само-собой другие пользователи не должны иметь доступа к ней), но я не знаю как лучше это сделать.
Была идея завязать на каждого пользователя passkey, т.е. ссылка на персональную ленту была бы:

url(r'^rss/(?P<username>\w+)/(?P<passkey>\w+)/$', personal_rss, name='personal_rss'),
И уже во view проверять соответствие пасскея юзеру и в случае успеха отдавать ленту.

Но почему-то вот такая конструкция не хочет работать:
#views.py
def personal_rss(requst, username, passkey):
#Проверка пасскея и получение юзера
return PersonalFeed(user)

#feeds.py
class PersonalFeed(Feed):
title = "Test RSS"
link = "/my_page/"
description = "My notifications"
user = None

def __init__(self, user, *args, **kwargs):
super(Feed, self).__init__(*args, **kwargs)
self.user = user

#Формирование рсс учитывая self.user
И выдаёт:
Traceback (most recent call last):

File "/usr/local/lib/python2.6/dist-packages/django/core/servers/basehttp.py", line 280, in run
self.result = application(self.environ, self.start_response)

File "/usr/local/lib/python2.6/dist-packages/django/core/servers/basehttp.py", line 674, in __call__
return self.application(environ, start_response)

File "/usr/local/lib/python2.6/dist-packages/django/core/handlers/wsgi.py", line 245, in __call__
response = middleware_method(request, response)

File "/usr/local/lib/python2.6/dist-packages/django/middleware/common.py", line 84, in process_response
if response.status_code == 404:

AttributeError: 'PersonalFeed' object has no attribute 'status_code'
Буду благодарен, если укажете что делать или покажете более хорошие пути для выполнения этой задачи.



Отредактировано (Окт. 4, 2010 07:46:43)

Офлайн

#2 Окт. 4, 2010 13:13:38

ziro
От:
Зарегистрирован: 2009-08-13
Сообщения: 225
Репутация: +  8  -
Профиль   Отправить e-mail  

Персонализированное RSS

Если я правильно понял, Вам нужно отдавать специальный rss для пользователя. Для этого есть все готовое - http://docs.djangoproject.com/en/dev/ref/contrib/syndication/#a-complex-example

Смысл в том, что если определить у класса фида метод get_object то этому методу будут переданы параметры из URLConf. А результат get_object будет передан в функцию items, где его собсно и можно использовать для фильтрации нужным Вам способом.



Офлайн

#3 Окт. 4, 2010 18:35:23

fth
От:
Зарегистрирован: 2010-07-26
Сообщения: 105
Репутация: +  0  -
Профиль   Отправить e-mail  

Персонализированное RSS

Спасибо, то что надо!

И да, таки надо доки читать дальше первых пунктов…



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version