V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
ccseven
V2EX  ›  Django

Django 中 模版.html 文件,传入变量后,其中 href = ‘{% url ‘xxxx’ 参数 1 参数 2}’ 这里参数怎么用变量?

  •  
  •   ccseven · 2016-02-04 00:34:12 +08:00 · 19101 次点击
    这是一个创建于 3216 天前的主题,其中的信息可能已经有所发展或是发生改变。
    在 写 模版文件时候,

    Django 中 模版.html 文件,传入变量后, url 跳转这里
    ————————————————————————————————
    <a href = '{% url ‘ xxxx ’ 参数 1 参数 2 %}' > 点击跳转 </a>
    ————————————————————————————————
    这里参数怎么用变量? 还是 href 后面, 无法支持变量。

    (我把变量用在同网页的其它地方就可以正确得到值)

    刚开始折腾这个 ,小白一个,请大神们指点。谢谢
    12 条回复    2016-02-04 16:50:59 +08:00
    wph95
        1
    wph95  
       2016-02-04 01:00:44 +08:00
    ccseven
        2
    ccseven  
    OP
       2016-02-04 09:37:55 +08:00
    @wph95 可能表述的不太明白,抱歉。。

    我的模版文档里,有个表格,这个表格的内容呢是自动生成的
    [内容是根据视图里的 function 下定义的一个变量 A ,其获取 数据库里信息.objects.all() ]

    然后在想在生成的表格里多加一列,里面有个 “跳转字” 关联一个 url 跳转

    我现在问题是: 当我定义这个 url 跳转时候, url 的具体内容是根据 我所在的这一行里的内容,生成的。


    比如我最终需要: 跳转 = xxxxx/11/22
    那么我写的时候 {% url 'app-views-client' 变量 变量 %}

    (问题是 我写这个 url 时候,用那个语法怎么添加这个参数是个变量, 这个参数并不是 urls.py 里正则获取的,而是视图里其中变量 A)

    列 1 列 2 列 3

    11 22 跳转
    rim99
        3
    rim99  
       2016-02-04 09:38:59 +08:00 via Android
    @wph95 文明版的 RTFM
    ccseven
        4
    ccseven  
    OP
       2016-02-04 09:53:47 +08:00
    @wph95 补充下



    <a class="btn btn-info" href=/goup/{{item.fname}}/{{item.fuser}}/ >查看</a>
    这个是我现在妥协写法

    <a class="btn btn-info" href= '{% url 'goup' '{{item.fname}}' '{{item.fuser}}' %}' >查看</a>

    这个我期待的写法,现在就想写成 我期待的效果,但 {{item.fuser}} 好像无法在这里生效


    给解析成这个样子了额

    http://xxxxxxxxxxx/goup/%7B%7Bitem.fname%7D%7D/%7B%7Bitem.fuser%7D%7D/
    lzsc123
        5
    lzsc123  
       2016-02-04 10:56:10 +08:00
    看似字符串被转义了,加上 safe 试试看? {{item.fuser | safe}}
    hardware
        6
    hardware  
       2016-02-04 10:58:50 +08:00
    我记得%号里面是参照 python 写的 所以不要用花括号
    ccseven
        7
    ccseven  
    OP
       2016-02-04 11:05:49 +08:00
    @hardware 若不加,则

    http://xxxxxxxxxxx/goup/item.fname/item.fuser/
    ccseven
        8
    ccseven  
    OP
       2016-02-04 11:07:54 +08:00
    @lzsc123 还是不行

    http://xxxxxxxxxxx/goup/%7B%7Bitem.fname%7Csafe%7D%7D/%7B%7Bitem.fuser%7Csafe%7D%7D/
    lzsc123
        9
    lzsc123  
       2016-02-04 12:07:23 +08:00
    '{{item.fname}}' 这里的引号去掉呢
    ccseven
        10
    ccseven  
    OP
       2016-02-04 12:27:44 +08:00
    @lzsc123 不行的,直接页面会打不开 Error during template rendering



    Django Version: 1.8.8
    Exception Type: TemplateSyntaxError
    Exception Value:
    Could not parse the remainder: '{{item.fname}}' from '{{item.fname}}'
    jimmyye
        11
    jimmyye  
       2016-02-04 16:38:35 +08:00   ❤️ 1
    <a class="btn btn-info" href= "{% url 'goup' item.fname item.fuser %}" >查看</a>
    ccseven
        12
    ccseven  
    OP
       2016-02-04 16:50:59 +08:00
    @jimmyye 非常 非常感谢

    官网文档 其实看了,还是自己理解不深刻。我看到文档时候,按它举例,
    我把 client 认为是 视图里其中一个 def client()
    然后套用到我自己配置,我也这样写了个 功能. 定义 url 时候捕获名 结果 @—@

    ------------官网举例---------------

    ('^client/([0-9]+)/$', app_views.client, name='app-views-client')



    {% url 'app-views-client' client.id %}
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2031 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 00:59 · PVG 08:59 · LAX 16:59 · JFK 19:59
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.