2013-05-29 2 views
0

Используя Django, я могу успешно читать и отображать значения из моей модели в сегменте содержимого моего шаблона, но я не могу получить значения из моей модели в сегменте заголовка моего шаблона.Использование шаблонов Django, как я могу получить доступ к значениям из моей модели в заголовке JavaScript?

Вот код ->

view.py:

from django.shortcuts import render_to_response 
from django.template import RequestContext 
from host.models import Event 

def EventSingle(request, slug): 
    return render_to_response('event.html', {'eventobject': Event.objects.get(slug=slug)}) 

event.html:

{% extends "base.html" %} 

{% block extrahead %} 
    <script type="text/javascript" src="https://ajax.microsoft.com/ajax/jQuery/jquery-1.4.2.min.js"></script> 
    <script type="text/javascript"> 

     var variable1; 
     variable1="click worked"; 
     //variable1={{ eventobject.datetime }}; 

     $(document).ready(function() { 
      $("#pic").click(function (b) { 
       alert(variable1); 
      }); 
     }); 
    </script> 
{% endblock %} 

{% block content %} 
    <div id="eventobject"> 

     <p>{{ eventobject }}</p> 
     <p>{{ eventobject.location }}</p> 
     <p>{{ eventobject.datetime }}</p> 

     <img id="pic" src="{{ eventobject.image1.url }}" /> 

    </div> 

{% endblock %} 

При нажатии на изображение, предупреждение появляется окно с текстом «click работал», но если я прокомментирую variable1="click worked"; и не комментирую variable1={{ eventobject.datetime }};, то ничего не происходит, когда я нажимаю на изображение. Могу ли я использовать ссылки на модели в разделе главы шаблона django? Все остальные ссылки на модель в блоке содержимого отображают значения из БД должным образом.

+0

Вы пробовали: variable1 = "{{eventobject.datetime}}"; – Charl

ответ

1

Я думаю, eventobject.datetime должен быть строковым или python объектом datetime.

Если это строка, изменить код:

variable1= "{{ eventobject.datetime }}" ; 

Если это объект даты и времени, используйте Джанго шаблон фильтра:

variable1= "{{ eventobject.datetime|date:"D d M Y" }}" 

https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date

Если Вы не делаете положите кавычки, утверждение javascript выглядит так:

variable1 = 2013-05-30 ; 

, который НЕПРАВИЛЬНЫЙ синтаксис javascript, необходимы кавычки.

0

Per Django docs, вы можете использовать фильтр даты на сегодняшний день формата:

variable1= '{{ eventobject.datetime|date:"d-m-Y" }}'; 

Кроме того, вы также можете установить DATE_FORMAT (или DATETIME_FORMAT) установки для установки проекта ширины по умолчанию для отображения таких значений.

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