MCPcopy
hub / github.com/django/django / get_feed

Method get_feed

django/contrib/syndication/views.py:135–235  ·  view source on GitHub ↗

Return a feedgenerator.DefaultFeed object, fully populated, for this feed. Raise FeedDoesNotExist for invalid parameters.

(self, obj, request)

Source from the content-addressed store, hash-verified

133 return {"obj": kwargs.get("item"), "site": kwargs.get("site")}
134
135 def get_feed(self, obj, request):
136 """
137 Return a feedgenerator.DefaultFeed object, fully populated, for
138 this feed. Raise FeedDoesNotExist for invalid parameters.
139 """
140 current_site = get_current_site(request)
141
142 link = self._get_dynamic_attr("link", obj)
143 link = add_domain(current_site.domain, link, request.is_secure())
144
145 feed = self.feed_type(
146 title=self._get_dynamic_attr("title", obj),
147 subtitle=self._get_dynamic_attr("subtitle", obj),
148 link=link,
149 description=self._get_dynamic_attr("description", obj),
150 language=self.language or get_language(),
151 feed_url=add_domain(
152 current_site.domain,
153 self._get_dynamic_attr("feed_url", obj) or request.path,
154 request.is_secure(),
155 ),
156 author_name=self._get_dynamic_attr("author_name", obj),
157 author_link=self._get_dynamic_attr("author_link", obj),
158 author_email=self._get_dynamic_attr("author_email", obj),
159 categories=self._get_dynamic_attr("categories", obj),
160 feed_copyright=self._get_dynamic_attr("feed_copyright", obj),
161 feed_guid=self._get_dynamic_attr("feed_guid", obj),
162 ttl=self._get_dynamic_attr("ttl", obj),
163 stylesheets=self._get_dynamic_attr("stylesheets", obj),
164 **self.feed_extra_kwargs(obj),
165 )
166
167 title_tmp = None
168 if self.title_template is not None:
169 try:
170 title_tmp = loader.get_template(self.title_template)
171 except TemplateDoesNotExist:
172 pass
173
174 description_tmp = None
175 if self.description_template is not None:
176 try:
177 description_tmp = loader.get_template(self.description_template)
178 except TemplateDoesNotExist:
179 pass
180
181 for item in self._get_dynamic_attr("items", obj):
182 context = self.get_context_data(
183 item=item, site=current_site, obj=obj, request=request
184 )
185 if title_tmp is not None:
186 title = title_tmp.render(context, request)
187 else:
188 title = self._get_dynamic_attr("item_title", item)
189 if description_tmp is not None:
190 description = description_tmp.render(context, request)
191 else:
192 description = self._get_dynamic_attr("item_description", item)

Callers 1

__call__Method · 0.95

Calls 14

_get_dynamic_attrMethod · 0.95
feed_extra_kwargsMethod · 0.95
get_context_dataMethod · 0.95
item_extra_kwargsMethod · 0.95
get_current_siteFunction · 0.90
get_languageFunction · 0.90
get_default_timezoneFunction · 0.90
is_naiveFunction · 0.90
make_awareFunction · 0.90
add_domainFunction · 0.85
add_itemMethod · 0.80
is_secureMethod · 0.45

Tested by

no test coverage detected