Ваша ссылка на значение атрибута data-img-url
неверна. Проверьте метод .data()
jquery и попробуйте настроить обработчик кликов следующим образом:
$('a .thumb').click(function (e) {
$('#lgImg').attr('src', $(this).parent().data('img-url'));
});
Существует отличный способ делать, некоторые подобные обслуживанию работы в среде проекта - пишут пользовательскую команду manage.py. Требуется вся настройка среды, и другой материал позволяет Вам концентрироваться на конкретной задаче.
И, конечно, назовите его непосредственно кроном.
Вы не должны создавать представление, необходимо просто инициировать сценарий Python с соответствующими настроенными параметрами среды Django. Затем назовите свои модели непосредственно способом, которым Вы были бы, если Вы использовали представление, обрабатываете Ваши данные, добавьте его к своей модели, затем .save () модель к базе данных.
"создайте сценарий Python и установите тот сценарий как крон (с DJANGO _SETTINGS _MODULE переменная установка прежде, чем выполнить сценарий)?"
Во-первых, обязательно объявите Ваши Формы в отдельном модуле (например. forms.py
)
Затем можно записать пакетные загрузчики, которые похожи на это. (У нас есть МНОГИЕ из них.)
from myapp.forms import MyObjectLoadForm
from myapp.models import MyObject
import xml.etree.ElementTree as ET
def xmlToDict( element ):
return dict(
field1= element.findtext('tag1'),
field2= element.findtext('tag2'),
)
def loadRow( aDict ):
f= MyObjectLoadForm( aDict )
if f.is_valid():
f.save()
def parseAndLoad( someFile ):
doc= ET.parse( someFile ).getroot()
for tag in doc.getiterator( "someTag" )
loadRow( xmlToDict(tag) )
Обратите внимание, что существует очень мало уникальной обработки здесь - она просто использует ту же Форму и Модель как Ваши функции представления.
Мы вставляем эти сценарии пакетной обработки с нашим приложением Django, так как оно зависит от приложения models.py
и forms.py
.
Единственная "интересная" часть преобразовывает Вашу строку XML в словарь так, чтобы это работало беспрепятственно с формами Django. Кроме этого, эта программа командной строки использует весь одинаковый компоненты Django в качестве Вашего представления.
Вы, вероятно, захотите добавить парсинг опций и вход для создания полного приложения командной строки из этого. Вы также заметите, что так большая часть логики универсальна - только xmlToDict
функция действительно уникальна. Мы звоним этим "Разработчикам" и имеем иерархию классов так, чтобы наши Разработчики были всеми полиморфными отображениями от наших исходных документов до словарей Python.
Я использовал крон для обновления моего DB с помощью и сценария и представления. С точки зрения крона это действительно не имеет значения, какой Вы выбираете. Поскольку Вы отметили, тем не менее, что трудно разбить простоту разжигания браузера и удара URL, если Вы когда-нибудь хотите обновить в непредвиденном интервале.
Если Вы идете путем представления, это могло бы быть достойно рассмотрения представление, которое принимает сам XML-файл через POST HTTP. Если бы это имеет смысл для Ваших данных (Вы не даете много информации о том XML-файле), это все еще работало бы от крона, но могло также принять загрузку от браузера - потенциально разрешение человеку, который производит обновление XML-файла DB собой. Это - большая победа, если Вы не тот, делающий XML-файл, который обычно имеет место, по моему опыту.