无法在django中写入动态 meta标记

ohtdti5x  于 2023-02-14  发布在  Go
关注(0)|答案(3)|浏览(124)

大家好,我想在django中打印动态 meta标签值。我有_header. html作为部分文件,这是所有页面共有的。在该头文件中,我想添加元标签。头文件包含在base. html中,base扩展了所有其他页面,我想为不同的页面添加不同的元标签。下面的代码是_header. html文件

{% load static %}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
"here i want dynamic meta tags"
<title>Random Blog</title>
<link rel="stylesheet" 
 href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css">
<link rel="stylesheet" href="{% static 'css/main.css' %}">
</head>
moiiocjp

moiiocjp1#

你可以在你的主html中有一个块 meta。然后对于每个模板视图,你可以在上下文中添加meta(或者直接在每个html中)

{% load static %}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
{% block meta %}
"here i want dynamic meta tags"
{% endblock meta %}
<title>Random Blog</title>
<link rel="stylesheet" 
 href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css">
<link rel="stylesheet" href="{% static 'css/main.css' %}">
</head>

然后在视图中

def some_view(request):
    my_custom_meta = 'Some custom meta'
    return render(request, 'my_template.html', {'my_custom_meta': my_custom_meta})

然后在另一个模板中:

{% include base.html %}
{% block meta %}
{{ my_custom_meta }}
{% endblock meta %}
yv5phkfx

yv5phkfx2#

你只能呈现一个单一的对象作为 meta列表视图或过滤器视图dosent支持我想是这样,但这里是你的解决方案

def meta (request,pk):
     metadata=Meta.objects.get(id=pk)
     return render (request, 'html file name', context)
iezvtpos

iezvtpos3#

下面是动态 meta标签的一个工作示例。

  • _基本.html*
<title>{% block title %}Home{% endblock %}</title>
<meta name="description"        content={% block meta_desc %}       "Default Description"   {% endblock %}>
<meta property="og:url"         content={% block meta_og_url %}     "https://example.com"   {% endblock %}>
<meta property="og:type"        content={% block meta_og_type %}    "website"               {% endblock %}>
<meta property="og:title"       content={% block meta_og_title %}   "Default Title"         {% endblock %}>
<meta property="og:description" content={% block meta_og_desc %}    "Default Description"{% endblock %}>
<meta property="og:image"       content={% block meta_og_image %}   "https://example.com{% static 'images/hero.jpg' %}"{% endblock %}>
  • 子页面.html*
{% extends 'templates/_base.html' %}
{% block title %}           {{ article.title }}             {% endblock %}
{% block meta_desc %}       {{ article.summary }}               {% endblock %}
{% block meta_og_type %}    article                         {% endblock %}
{% block meta_og_title %}   {{ article.title }}             {% endblock %}
{% block meta_og_desc %}    {{ article.summary }}           {% endblock %}
{% block meta_og_image %}   {{ article.cover_image_url }}   {% endblock %}

相关问题