【发布时间】:2021-06-04 12:28:20
【问题描述】:
假设我有一个像下面这样的模型
from django.db import models
class Person(models.Model):
first_name = models.CharField(max_length=36)
last_name = models.CharField(max_length=36)
我在urls.py 中有一个类似的网址
path(r'profile/<str:first_name>/<str:last_name>/', ..., name='profile')
在模板中,如果有一个变量person,我可以通过输入{% url "profile" person.first_name person.last_name %} 来获取他们的个人资料网址。
但是,我真的不想重复自己,而是按照{% url "profile" **person %} 的方式做更多的事情——这不是一个有效的语法,但重点是我想使用 person 的属性作为参数网址标签。这样,如果我将 URL 模式更改为也使用 middle_name,我就不需要再次编辑模板。
是否有(最好是内置的,但自定义标签也可以)方法来做到这一点?我在谷歌上花了一段时间查询“django url template tag kwargs”,但没有找到任何东西。 (而且我想避免更改 URL 本身,因为它会暴露给最终用户。)
【问题讨论】:
标签: python django django-templates