在Django中传递模板中的变量

时间:2014-06-25 17:45:23

标签: python django

我想创建一个通用的国家/地区视图,根据我在地图上点击的国家/地区填充数据。当前的URL如下所示:

# Country View URL 
   url(r'^country/' , 'wiki.views.country',
        name = 'wiki_country'),

观点是:

def country(request):
    return render_to_response("wiki/country.html")

如果我想为每个国家/地区设置单独的页面,那就没问题。我在其他地方读到,没有简单的方法可以从Django中的模板中获取变量。我想要的是模板中的链接不仅有URL,还有一个值(“国家名称”),然后允许我动态填充单个countryView模板。

1 个答案:

答案 0 :(得分:1)

对于需要idname国家/地区的特定国家/地区,您可以将网址格式定义为:

url(r'^country/(?P<id>\d+)/(?P<name>\w+)' , 'wiki.views.country', name='wiki_country'),

视图将是:

def country(request, id, name):
    country = Country.objects.get(id=id, name=name)
    return render_to_response("wiki/country.html", {'country': country})

在列表模板中,您可以输入以下链接:

{% for country in countries %}
    <a href="{% url 'wiki_country' country.id country.name %}">{{ country.name }}</a>
{% endfor %}

希望这会带你到某个地方。