Django: как мне отрендерить XML-файл, а затем использовать этот xml в представлении одновременно? - PullRequest
1 голос
/ 13 октября 2011

Я пытаюсь использовать SIMILE timeline в моем приложении Django. Временная шкала требует, чтобы это были данные в файле XML. Теперь я знаю, как сделать представление в HTML. И я, наверное, могу понять, как сделать представление в XML. Но как можно отрисовать оба, а затем извлечь данные XML в файл HTML, если файл XML не существует на диске (поскольку он генерируется Django)?

Спасибо!

Редактировать: строка, которая принимает XML, находится в Javascript и выглядит следующим образом:

Timeline.loadXML("/static/example1.xml", function(xml,url) {eventSource.loadXML(xml,url); })

Мне нужен путь, так как вставка XML непосредственно в виде строки не работает. Но пути не существует, так как файл XML фактически никогда не существует на диске.

Ответы [ 2 ]

1 голос
/ 14 октября 2011

Вам не нужно создавать свой XML в виде. Просто создайте шаблон XML, отобразите его в строку и запишите результат в временный файл .

1 голос
/ 13 октября 2011

Похоже, вы пытаетесь втиснуть слишком много вещей в одно представление.

Я бы сделал следующее:

  1. Создайте представление, которое генерирует XML (каждый запрос к представлению должен генерировать XML с нуля).
  2. Создать представление, которое использует виджет временной шкалы и указывает его на XML в 1)
  3. Включить Кэширование Джанго слой и аннотировать представление XML соответственно.Например, @cache_page(60 * 60)

Если по какой-то причине вам нужен XML во время генерации HTML (как вы указываете в заголовке), вы можете просто напрямую вызвать XMLвид из HTML один.Например:

@cache_page(..)
def xml(request):
  # ... generate xml

def html(request):
  xml = xml(request)
  # ... generate timeline from xml

Конечно, ничто не мешает вам вручную кэшировать на диск, но проще использовать возможности Django.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...