X-Git-Url: http://git.ithinksw.org/philo.git/blobdiff_plain/72849b1c135de8c0ad14d2ca881a98fdea279859..e095f691f243784f8c8d0a9773270b9dbead18e9:/templatetags/embed.py?ds=sidebyside diff --git a/templatetags/embed.py b/templatetags/embed.py index 901e163..db5cea5 100644 --- a/templatetags/embed.py +++ b/templatetags/embed.py @@ -65,6 +65,9 @@ def get_embed_dict(embed_list, context): embeds = {} for e in embed_list: ct = e.get_content_type(context) + if ct is None: + # Then the embed doesn't exist for this context. + continue if ct not in embeds: embeds[ct] = [e] else: @@ -207,17 +210,13 @@ class ConstantEmbedNode(template.Node): try: t = context.render_context[EMBED_CONTEXT_KEY].get_embed_template(self, context) except (KeyError, IndexError): - if settings.TEMPLATE_DEBUG: - raise self.mark_rendered_for(context) return settings.TEMPLATE_STRING_IF_INVALID context.push() context['embedded'] = instance - kwargs = {} for k, v in self.kwargs.items(): - kwargs[k] = v.resolve(context) - context.update(kwargs) + context[k] = v.resolve(context) t_rendered = t.render(context) context.pop() self.mark_rendered_for(context) @@ -263,7 +262,10 @@ class InstanceEmbedNode(EmbedNode): return self.instance.resolve(context) def get_content_type(self, context): - return ContentType.objects.get_for_model(self.get_instance(context)) + instance = self.get_instance(context) + if not instance: + return None + return ContentType.objects.get_for_model(instance) def get_embedded(self):