Return a feedgenerator.DefaultFeed object, fully populated, for this feed. Raise FeedDoesNotExist for invalid parameters.
(self, obj, request)
| 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) |
no test coverage detected