繁体   English   中英

带有可变 django 模板的动态 URL

[英]Dynamic URL with variable django template

我正在尝试基于页面列表构建一个动态的 url 列表。

在我的 urls.py 中,整个应用程序位于命名空间base

urlpatterns = patterns('',
    url(r'^(?P<pk>[\w]+)/title/$', TitleSection.as_view(), name='title'),
    url(r'^(?P<pk>[\w]+)/amount/$', AmountSection.as_view(), name='amount'),
    url(r'^(?P<pk>[\w]+)/description/$', DescriptionSection.as_view(), name='description'), )

在我的context数据中,我有以下列表:

sections: ['title', 'amount', 'description']

我正在尝试为各部分中的每个元素构建 url。

我尝试了以下方法:

{% for section in sections %}
    <a href="{% url "base:"+section pk=object.id %}">..</a>
{% endfor %}

但我收到以下错误:

无法解析剩余部分:来自 '"base:"+section' 的 '+section'

然后我尝试:

<a href="{% url "base:{{section}}" pk=project.id %}">{{ section }}</a>

错误:

使用参数 '()' 和关键字参数 '{u'pk': 77}' 反转 '{{section}}' 未找到。 尝试了 0 个模式:[]

你知道怎么做吗?

您可以使用添加模板过滤器

{% url "base:"|add:section pk=project.id %}

对于我的情况也有效

{% for section in sections %}
<a href="{% url "base" pk=object.id %}">..</a>
{% endfor %}

网址模式在哪里

url=[
path('base/<pk>/',base,name='base'),
]

我的每个模型都有一个列表视图、一个创建/更新视图和一个删除视图。 这些将由客户组织内的不同职能部门使用,以维护他们负责的数据。 每个列表视图都有指向相关创建、更新和删除视图的链接。 我想构建一个页面,其中包含指向列表视图的链接列表。 这是我如何做到的。

我在 views.py 中创建了一个基于函数的视图。

def index(request):
     app     = request.resolver_match.app_name
     models  = apps.get_app_config(app).get_models()
     names   = [model._meta.model.__name__ for model in models]
     context = {
         "names" : names,
     }
     return render(request, app + '/index.html', context)

我创建了一个模板 app/templates/app/index.html

{% for name in names %}
<li><a href="{% url request.resolver_match.app_name|add:':'|add:name|lower|add:'-review'%}">{{ name}}</a></li>                                              
{% endfor %}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM