在我的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 }} %}
我不确定如何完成这项任务,它似乎无法使用我拥有的工具。有没有人有任何建议?
答案 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 %}