2015-06-18 2 views
0

У меня есть собственный тег шаблона, который возвращает имя студента и число рулонов, если он передан как идентификатор аргумента студента.Пользовательские теги шаблона Django в javascript

@register.inclusion_tag('snippet/student_name.html') 
def st_name_tag(profile, disp_roll=True, disp_name=True): 
    #some calculations 
    return {'full_name':student.name, 
      'roll':student.roll_number, 
      } 

Шаблон (входит в комплект) состоит из нескольких HTML-файла, который записывается в одной строке (чтобы избежать unterminated string literal ошибки от JS).

Я просто хочу позвонить st_name_tag из функции JS.

Мой JS выглядит следующим образом:

{% load profile_tag %} 
<script type = "text/javascript"> 
eventclick : function(st){ 
    var div = ('<div></div>'); 
    var st_id = st.id; 
    if (st.status == 'pass'){ 
      div.append('<p>Student Name:{% st_name_tag '+st_id+' %}</p>'); 
    } 
} 

До сих пор я пытался вышеупомянутый метод наряду с удалением + и '' знаков от st_id Названия переменного. Это не помогло мне вообще. Помоги пожалуйста!

+3

Вы не можете этого сделать. Вы не можете смешивать логику на стороне клиента с логикой на стороне сервера, потому что шаблон уже отображается на сервере, прежде чем что-либо произойдет с javascript. Чего вы пытаетесь достичь именно? – Wtower

+0

Я пытаюсь загрузить шаблон на событие javascript click. – Dan

+0

Вам нужно будет использовать ajax в этом отношении. http://stackoverflow.com/a/28341345/940098 – Wtower

ответ

0

Вы пытаетесь отобразить шаблон на основе взаимодействия пользователя. Первое происходит на сервере (на стороне сервера, как это часто упоминается), а последнее происходит в браузере пользователя.

Порядок, в котором это происходит, заключается в том, чтобы сначала отобразить шаблон на сервере, отправить и представить в браузере, а затем пользователь взаимодействует с js. Из-за этого, как я упоминал в комментарии, невозможно повлиять на шаблон, созданный в javascript.

Я бы порекомендовал вас использовать ajax для этого. Всякий раз, когда происходит итерация, вы асинхронно отправляете запрос на сервер, чтобы представить вам новые данные.

Смежные вопросы