2017-01-13 22 views
-1

我目前正在使用Django構建一個web應用程序。 我已經使用JS構建了一個日曆,並且我基本上從Js文件構建了HTML。如何從Django中的js html生成器獲取url?

我想在每個日曆日包括hrefs。例如: {%url'calendarDay'day = 28 month = 12 year = 2016%}是28/12/2016日期應該具備的內容。

如果我嘗試從我的模板中的任何其他地方轉到此URL,它的工作原理。由於某些原因,當我從js傳遞html時,它不起作用。

這是我在我的網址:

url(r'^calendar/$', views.calendar, name='calendar'), 
url(r'^calendar/(?P<day>\w+)/(?P<month>\w+)/(?P<year>\w+)/$',views.calendar, name = 'calendarDay'), 

這是我的js生成器功能(即建立在以前的一個月的天部分):

if (FirstDay.getDay()==0){ 
     for (var i=LastMonthDays-5; i <= LastMonthDays; i++) { 
      href="<a href=\"{% url 'calendarDay' day="+i+" month="+(pastMonth.getMonth()+1)+" year="+pastMonth.getFullYear()+" %}\">" 
      html +=href+ "<li>"+(i)+"</li></a>"; 
     } 
    } 

這是怎樣的HTML文件看起來像當我檢查頁面:

<a href="{% url 'calendarDay' day=28 month=12 year=2016 %}"><li>28</li></a> 

由於某種原因,它獲得的url是:http://127.0.0.1:8000/calendar/%7B%%20url%20 'calendarDay' %20天= 28%20個月= 12%20年= 2016%20 %% 7D

而且ofcourse我得到以下錯誤:

當前的URL,日曆/ {%URL 'calendarDay' 天= 28個月= 12年= 2016%},與這些中的任何一個都不匹配。

這裏有什麼問題?

+0

DTL在JS文件中不起作用....因爲它們不是模板。 – Sayse

+0

但它將html代碼傳遞到模板中。如果我檢查文件,我得到我應該得到的 –

+0

不,它將HTML代碼傳遞到呈現的html中 – Sayse

回答

0

模板標籤將在javascript之前在服務器端呈現。你應該創建一個JavaScript函數來生成你的日曆網址。