添加动态内容

时间:2014-07-22 15:16:23

标签: django forms templates tags

在我的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 }} %}

我不确定如何完成这项任务,它似乎无法使用我拥有的工具。有没有人有任何建议?

1 个答案:

答案 0 :(得分:3)

尝试{% 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 %}

形式调用一些模板标记