如何使用 django-meta 模块(或任何更简单的方法)来渲染 html 元标记



我试图尽我所能遵循Django-meta文档。 将其添加到设置文件中的应用程序列表中

INSTALLED_APPS = [
...
'meta',
]

我的模型看起来像

from django.db import models
from meta.models import ModelMeta
class Article(ModelMeta, models.Model):
user = models.ForeignKey(User, default=1, null=True, on_delete=models.SET_NULL)
image = models.ImageField(upload_to='image/', blank=True, null=True)
title = models.CharField(max_length=120)
slug = models.SlugField(unique=True)
content = models.TextField(null=True, blank=True)

_metadata = {
'title': 'title',
'description': 'content',
}

我的 views.py 看起来像

def article_detail_view(request, slug):
obj = get_object_or_404(Article, slug=slug)
template_name = ['snmov/home.html']
context = {}
context['object'] = obj
context['meta'] = obj.as_meta()
return render(request, template_name, context)

此视图的路径如下所示

path('<str:slug>/', article_detail_view, name='article_detail'),

家.html延伸了一个底座.html其头牌有

{% include "meta/meta.html" %}

元.html有

{{meta}}

我的问题:我希望它在元标记中呈现文章的"标题"和"内容",但它将元标记呈现为<meta.views.Meta object at ******>在页面正文中。

问题:如何使其呈现在文档的头部? 为了使元标记像预期的那样呈现,我缺少什么?

任何帮助将不胜感激。如果需要,我可以提供更多信息。谢谢

您应该在基本模板的标题中创建一个块:

<head>
...
...
{% block meta_extend %}
{% endblock %}
</head>


您可以在模板中打印元标记:

{% block meta_extend %}
{{ meta }}
{% endblock %}

或类似的东西:

{% block meta_extend %}
<meta name="description" content="{{ obj.description }}">
<meta name="title" content="{{ obj.title }}">
{% endblock %}

软件包信息/文档非常稀缺。

我注意到的是:

  1. 一次将社交网络减少到"1",帮助我简化控制台错误的内容
  2. 似乎有几个变量更喜欢通过"设置"(配置文件(进行设置,而不是在代码中设置它们。 META_SITE_PROTOCOL = 'https' META_SITE_DOMAIN = env('DJANGO_META_SITE_DOMAIN', default='www.InternationalExampleNetwork.com'( # META_USE_SITES = 真 # 警告:不要激活,因为它会使编译失败。

    META_USE_OG_PROPERTIES = True        
    FB_TYPE=''        
    FB_APPID=''
    FB_PROFILE_ID='1111111'        
    FB_PUBLISHER='@InternationalExampleNetwork'
    FB_AUTHOR_URL='/en/'
    FB_PAGES=''
    META_USE_TWITTER_PROPERTIES = False
    TWITTER_TYPE=11
    TWITTER_SITE=env('DJANGO_META_SITE_DOMAIN', default='www.InternationalExampleNetwork.com')
    TWITTER_AUTHOR='International Example Network'
    # Is there still some use for Google+ ... ? 
    META_USE_GOOGLEPLUS_PROPERTIES = False
    
  3. 到目前为止,OG 站点 (https://ogp.me/( 中的ME文档几乎没有帮助(未来会证明(。

最新更新