【问题标题】:Passing a variable from template in Django从Django中的模板传递变量
【发布时间】:2014-06-26 01:52:37
【问题描述】:

我想创建一个通用的国家视图,根据我在地图上点击的国家来填充数据。当前 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 模板。

【问题讨论】:

    标签: python django


    【解决方案1】:

    对于将采用idname 的特定国家/地区,您可以将 URL 模式定义为:

    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 %}
    

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

    【讨论】:

    • 顺便说一句,我需要在列表模板中添加 {{country.name}} 吗?既然这是用户选择国家的地方,我不应该只是硬编码吗?
    • 好的,我认为这会奏效。仍然在搞乱模型,但我的问题是国家的名称和 id 去哪里以便可以根据这些值创建实例?肯定在模板上的块中,对吗?
    猜你喜欢
    • 2015-05-23
    • 2013-12-16
    • 1970-01-01
    • 2014-11-30
    • 2019-04-03
    • 2011-12-17
    • 2017-03-10
    • 1970-01-01
    • 2021-02-15
    相关资源
    最近更新 更多