V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
Anybfans
V2EX  ›  问与答

请问个关于 django 动态设置 base 页面的问题

  •  
  •   Anybfans · 2015-05-20 11:01:32 +08:00 · 2634 次点击
    这是一个创建于 3482 天前的主题,其中的信息可能已经有所发展或是发生改变。

    现在有个django blog。我想用户可以设置meta的信息。
    <title>{{detals.title}}</title>
    <meta name="description" content="{{detals.description}}" />
    <meta name="keywords" content="{{detals.keywords}}">
    <link rel='next' href='{{detals.url}}/about/' />
    <link rel="canonical" href="{{detals.url}}" />
    <meta property="og:title" content="{{detals.name}} - {{detals.url}}" />
    <meta property="og:type" content="blog" />
    <meta property="og:url" content="{{detals.url}}" />

    例如这样。请问要具体怎么做。。真心纠结这个问题。先谢谢!

    12 条回复    2015-05-20 15:53:03 +08:00
    Anybfans
        1
    Anybfans  
    OP
       2015-05-20 11:04:06 +08:00
    这写信息写在base.html页面里面。可是怎么才能在后台渲染给base.html呢。
    好像没有专门要去渲染base页面的
    一般都是index.html什么的
    zenxds
        2
    zenxds  
       2015-05-20 11:06:51 +08:00
    把用户设置的信息作为数据传入就行了,base里面一般用block包上,在子页面重写
    Anybfans
        3
    Anybfans  
    OP
       2015-05-20 11:11:27 +08:00
    @zenxds 那么每个页面都要重写了?
    zenxds
        4
    zenxds  
       2015-05-20 11:16:25 +08:00
    @Anybfans 你可以单独写一个模板去extend base,然后跟用户相关的页面去extend这个模板,如果你所有页面都想这么设置那就直接写在base
    Anybfans
        5
    Anybfans  
    OP
       2015-05-20 11:36:09 +08:00
    @zenxds 对呀。可是怎么数据怎么渲染给base.html呢。。。还是不懂。。
    例如我现在后台已经得到这个数据了。。怎么渲染给Base页面呢
    Anybfans
        6
    Anybfans  
    OP
       2015-05-20 11:40:31 +08:00
    @zenxds 我把那个后台获取数据,然后设置session 放在了中间件里面。。
    glasslion
        7
    glasslion  
       2015-05-20 13:39:23 +08:00
    django template 是可以继承和覆盖的

    base.html:
    <head>
    {% block hello %}
    <title> xxx</title>
    {% endblock %}
    </body>
    </head>

    details.htm
    {% extends "base.html" %}


    {% block head %}
    {{ block.super }}
    <meta property="..." />
    {% endblock %}
    Anybfans
        8
    Anybfans  
    OP
       2015-05-20 14:01:33 +08:00
    @glasslion 这个知道呀。可是怎么把数据渲染给base.html是个问题。。
    zq9
        9
    zq9  
       2015-05-20 14:28:31 +08:00
    @Anybfans templatetags 传request.user 进去查对应用户的数据返回。。。
    zq9
        10
    zq9  
       2015-05-20 14:37:24 +08:00   ❤️ 1
    Anybfans
        11
    Anybfans  
    OP
       2015-05-20 15:39:18 +08:00
    @zq9 对呀。用tags 感觉要简单好多。。。。。。。懂。我试试。先谢谢!
    Anybfans
        12
    Anybfans  
    OP
       2015-05-20 15:53:03 +08:00
    @zq9 已经完美解决。谢谢!
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1306 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 17:45 · PVG 01:45 · LAX 09:45 · JFK 12:45
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.