【问题标题】:Add dynamic content添加动态内容
【发布时间】:2014-09-13 12:01:36
【问题描述】:

在我的 Django 新闻网站上发布了一篇新文章(以 Ajax 的形式)后,我想返回该文章的链接。

为此,我使用了一个模板对象:

if form.is_valid():
     form.instance.user = request.user
     new_article = form.save()
     success = Template('<div id="panel_input" class="col-lg-4"> <h2 class="text-center"> Success </h2> <p class="text-center"> Your Article has been posted. You can see and edit details by clicking <a href="{% url "article_manager:article" %}/{{ article_id }}">here</a>. </p></div>')
     context = Context({"article_id" : new_article.pk})
     return HttpResponse(success.render(context))

这个的 urlsConf 看起来像:

...
 url(r'^article/(?P<article_id>\d+)/$', views.article, name='article'),
...

问题是因为{% url "article_manager:article" %}/{{ article_id }} 而出现错误。显然,我必须在前一个标签中传递article_id,因为urlsConf 需要id 参数。

但是当我将第二个标签放在第一个标签内时,我也会收到 错误,如下所示:

{% url "article_manager:article" {{ article_id }} %}

我不确定如何完成这项任务,它似乎不适用于我拥有的工具。有人有什么建议吗?

【问题讨论】:

    标签: django forms templates tags


    【解决方案1】:

    试试{% url "article_manager:article" article_id=article_id %}

    也许需要更多解释:您正在正确调用模板标签{% url "namespace:name" %}。请记住,某些模板标签可以采用*args, **kwargs 形式的参数。 args 可以是模板语言可以理解的任何简单表达式,包括上下文变量(无需添加双括号)。 kwargs 遵循相同的规则,格式为argument=expression。因此,您可以使用{% tag "exp" 1 request number=5 username=user.name %} 形式调用一些模板标签

    【讨论】:

    • 现在我收到了错误Could not parse the remainder: '=' from '='
    • 没关系,错误是因为我在等号的两边都放了一个空格。现在可以使用了!
    猜你喜欢
    • 1970-01-01
    • 2012-08-05
    • 1970-01-01
    • 2023-04-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-15
    • 2018-07-28
    相关资源
    最近更新 更多