django-seo - 什么都没显示

时间:2013-01-29 09:55:11

标签: django

我的django项目中有一个应用程序。

我创建了seo.py文件并添加:

来自rollyourown import seo的

class MyMetadata(seo.Metadata):
    title = seo.Tag(head=True, max_length=68)
    description = seo.MetaTag(max_length=155)
    keywords = seo.KeywordTag()

    class HelpText:
        title  = "This will appear in the window/tab name, as well as in search results."
        keywords = "A comma separated list of words or phrases that describe the content"
        description = "This will appear in the description"

    class Meta:
        seo_views = ('app_name', )

head的base.html中我添加了:

{% load seo %}
{% get_metadata %} 

但没有显示任何内容。怎么了? (当然,我在管理面板中添加了数据 - 我的元数据(查看))

2 个答案:

答案 0 :(得分:0)

如果您尚未将该应用程序放在settings.py中的INSTALLED_APPS变量中,则加载模板标记库将不起作用。你把rollyourown.seo放在那里了吗?

您需要设置的路径应采用'/ pagename /'格式。对于您的主页,您只需要'/'。

答案 1 :(得分:0)

@ringfirebug,可能你已经解决了你的问题,但我会回答。 您不需要为每个页面设置路径。使用模型,模型实例或视图。从您的配置中我发现您在seo_views中仍然有一个默认视图。看起来应该是这样开始工作:

class Meta:
    seo_views = ('your_app_name.view_name',)
    seo_models = ('your_model_1', 'your_model_2',)

因此,在模型或视图中创建新的元数据条目时,您将能够在选择框中看到这些模型和/或视图。

接下来,在您的模板中,如果它仍然不起作用,您必须准确获取此对象的seo数据, 这对我有用。

{% load seo %}
{% get_metadata for obj as metadata %}
{% metadata %}

这里'obj'是对象,例如,您通过RequestContext通过视图路径到模板的产品。

如果你设法解决它,请告诉我。

顺便说一句,如果您已经设法在元标记中使用外部数据,例如“年度最佳{{product.name}}”,请告诉我。