1

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

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

从 rollyourown 导入 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', )

在我的 base.html 中,head我添加了:

{% load seo %}
{% get_metadata %} 

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

4

2 回答 2

0

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

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

于 2013-01-29T09:59:14.830 回答
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 }}”,请告诉我如何操作。

于 2014-05-13T11:37:54.877 回答