Django将字符串添加到url之前

时间:2017-08-22 11:05:34

标签: django url

如何在我的所有网址前加一个字符串? 说我有http://127.0.0.1:8000/articles/new/ 我希望http://127.0.0.1:8000/ 用户名 / articles / new / 无需在我的网站中更改所有模板网址。 我想在此处添加的字符串是基于登录用户的用户名。 怎么做到这一点?

1 个答案:

答案 0 :(得分:3)

首先,您必须在所有模板中使用模板标记url

如果您的urls.py中有类似的内容:

url(r'^articles/new$', NewArticleView.as_view(), name='new_article')

在您的模板中,您有:

<a href="{% url 'new_article' %}">new article</a>

将其转换为:

url(r'^(?P<username>.+/articles/new$', NewArticleView.as_view(), name='new_article')

<a href="{% url 'new_article' request.user.username %}">new article</a>

如果您不使用模板标记url,则除了更改所有模板之外没有其他方法(据我所知)