2016-07-19 49 views
0

我有Django的模板,這個要求:如何將{%url''%}賦予變量?

{% if user.is_admin %} 
<a href='{% url 'url_to_admin' %}'>admin url</a> 
{% else %} 
<a href='{% url 'url_to_other %}'>other url </a> 
{% endif %} 

,現在,我要讓它更簡單,我希望讓url一個變量'XX」,像這樣:

if user.is_admin: 
    myurl = {% url 'url_to_admin' %} 
else: 
    myurl = {% url 'url_to_other' %} 

<a href={{myurl}} > url </a> 

但我不知道如何寫在Django的模板?

+0

不要以爲你可以寫在這樣的Django模板。 – Rohan

+0

使用反向URL有什麼問題? 在此 - > https://docs.djangoproject.com/en/1.9/ref/templates/builtins/中查看'網址' –

回答

0

不是答案,但你可以試試這個:

<a href='{% if user.is_admin %}{% url 'url_to_admin' %}{% else %}{% url 'url_to_other' %}'>other url </a> 
0

你爲什麼不處理它的意見,你呈現模板之前,嘗試在view.py像 if User.is_admin: url = 'url_to_admin' else: url = 'url_to_other' render(request, "your_template.html", {'url' : url})

那麼你可以繼續打電話給你的網址在您的模板一樣 <a href= "{{ url }}>url</a>"

2

url標籤可以通過使用被分配給一個變量。

{% url 'my_url' as foobar %} 
{{ foobar }} 

但是在當前使用它的地方沒有意義。剛分配錨標籤的if/else語句

{% if user.is_admin %} 
    <a href="{% url 'url_to_admin' %}">admin</a> 
{% else %} 
    <a href="{% url 'url_to_other' %}">other</a> 
{% endif %} 
0

views.py

from django.core.urlresolvers import reverse 
def my_view(request): 
    if request.user.is_admin: 
     my_url = reverse('my_admin_view') 
    else: 
     my_url = reverse('my_other_view') 
    return render(request, 'my_template.html', {'my_url': my_url }) 

使用django.core.urlresolvers.reverse

my_template.html內

<a href="{{ my_url }}">This is a link</a>