Ошибка функции синдикации Django

Я пытаюсь создать пользовательский RSS-канал Django, используя синдикацию django (фактически используя каналы django wagtail). У меня есть ошибка, которую, я думаю, я идентифицировал как происходящую из объекта NoneType, который возвращается get_object() функция внутри syndication/views.py,

Объект `AttributeError at /feed/basic/Chups/ 'NoneType' не имеет атрибута" setswith "

Расположение исключения: /Users/technical/.virtualenvs/wagtest4-plnzODoN/lib/python3.6/site-packages/django/contrib/syndication/views.py в add_domain, строка 19`

Эта функция называется частью class Feed() и выглядит так:

def get_object(self, request, *args, **kwargs):
    return None

Эта функция вызывается в строке 36, но происходит сбой, потому что get_object() возвращает None объект.

Моя настройка кормов для трясогузки Django расширяется Feed следующим образом:

from django.contrib.syndication.views import Feed
from django.utils.feedgenerator import (
    SyndicationFeed, rfc3339_date, Rss201rev2Feed
)
from .models import RSSFeedsSettings, RSSFeed

class BasicFeed(Feed):

    # FEED TYPE
    feed_type = Rss201rev2Feed

    def get_object(self, request, category):
        return category

try:
    feed_app_settings = RSSFeedsSettings.objects.get(feed_category_name="Flex")
    print(feed_app_settings)
    feed_app_label = feed_app_settings.feed_app_label
    feed_model_name = feed_app_settings.feed_model_name
    feed_category_name = feed_app_settings.feed_category_name
    use_feed_image = feed_app_settings.feed_image_in_content
except:  # pragma: no cover
    feed_app_settings = None

try:
    feed_model = apps.get_model(app_label=feed_app_label,
                                model_name=feed_model_name)
except:  # pragma: no cover
    feed_model = None

# The RSS information that gets shown at the top of the feed.
if feed_app_settings is not None:
    title = feed_app_settings.feed_title
    link = feed_app_settings.feed_link
    description = feed_app_settings.feed_description

    author_email = feed_app_settings.feed_author_email
    author_link = feed_app_settings.feed_author_link

    item_description_field = feed_app_settings.feed_item_description_field
    item_content_field = feed_app_settings.feed_item_content_field

def items(self, obj):
    url_category = obj
    categories = ContentType(app_label="blog", model="blogcategory")
    category_id = categories.get_object_for_this_type(name=url_category).id
    return feed_model.objects.filter(categories=category_id).order_by('-date').live()

def item_pubdate(self, item):
    return datetime.combine(item.date, time())

def item_link(self, item):
    return item.full_url

def item_author_name(self, item):
    pass

urls.py включает это, и запросы, кажется, достигают функции нормально.

url(r'^feed/basic/(?P<category>[0-9a-zA-Z]+)/$', BasicFeed(), name='basic_feed'),

Может кто-нибудь сказать мне, почему это может быть? Я что-то упускаю из-за ожидаемого функционирования этого. Спасибо!

0 ответов

Другие вопросы по тегам