Найти - Пользователи
Полная версия: Dgango-cms и свои теги в шаблонах
Начало » Django » Dgango-cms и свои теги в шаблонах
1 2
Slon
Доброго времени суток,

Значит так: есть сайт на django-cms и есть собственное приложение(оно фонарное: делает выборку по фильтру, и возвращает список)
Хочу интегрировать одно с другим. Проще говоря мне нужно чтобы на главной заработала моя переменная которая связана с внешней моделью(не завязанной на cms).

Подскажите пожалуйста как такое реализовать.
fth
Вы случаем не путает понятия фреймворк и CMS?
Что за приложение? Питоновское или на другом языке?
Slon
на главной заработала моя переменная которая связана с внешней моделью
Вот эта фраза мне совсем непонятна… Что вы понимаете под переменной? Результат работы вашего стороннего приложения?

Как возможные решения это использовать сырые запросы к БД или же считывать стандартными питоновскими методами вывод вашего приложения и уже передавать результат обычным способом через контекст.
Ferroman
Что конкретно Вы хотите сделать? Вывести что-то на главной? Изменить её поведение?
Slon
Чет я намудрил с описанием. Вот что нужно:

Есть отдельное приложение(manage.py startapp news), у него есть модель и вот такое представление:
def news_compact(request):
news_list = news.objects.filter(news_published = 1)
return render_to_response('news.html', {'news_list': news_list,},)]
Мне нужно в основной шаблон подгружать инклудом news.html. Проблема в том, что я не знаю как заставить работать мой тег, news_list в шаблоне.

пс: сайт работает на django-cms
fth
Используйте {{ news.news_compact|safe }}
Slon
А как оно должно работать? Нет никакой реакции на эту переменную
fth
Ошибка вышла, решение со сейфом вам не подходит. (я подумал что та функция была методом модели, а не представлением)

Насчёт же включения инклудом news.html, единственное что инклуд делает это “передаёт” текст шаблона из указанного файла, а контекст вы должны отдавать сами, т.е. в основном представлении тоже должно формироваться news_list.
Slon
В этом как раз и проблема, всей логикой заведует django-cms. А как в эту логику влезть, я не пойму.
fth
Прочитайте следующие вещи:
http://ru.wikipedia.org/wiki/Система_управления_содержимым
http://docs.djangoproject.com/en/dev/ref/templates/builtins/#include

Во-первых, почему-то под django-cms у меня такое ощущение вы понимаете шаблонную сстему Джанги. (поправьте меня если я не прав или заблуждаюсь)
Во-вторых, использование include не избавляет от необходимости передавать контекст, т.е. воспринимайте это словно делается копипаст куска шаблона в обрабатываемый шаблон и не более того.
Slon
1. Вы заблуждаетесь
2. Я понимаю как работает include.

Сейчас опишу всю картину в общем, чтобы было понятно где что:
Сайт сделан на django-cms. На главной есть модуль, новости, который выводит 3 последние новости. Ну как выводит, он инклудит news.html в котором в дивах прописаны руками новости. Также есть отдельная вкладка новости, где выводятся те же новости, но с картинками и т.п.(уже через cms, но и там через ж..) Это как то не по феншую лазить в шаблон и писать руками там. Я сделал отдельное от cms представление, чтобы все было красиво. В идеале, хочу сделать свое приложение новостей, которое позволит загружать изображения, будет иметь поля аннотации и самой новости, rss фид. Во общем все как у людей.

Я сделал представление, что выложил выше. Теперь мне нужно его связать с url'ом главной странницы. Но все урлы перехватывает, и обрабатывает django-cms:
(r'^', include('cms.urls')),
Тут и проблема.

Я в перспективе хочу уйти от django-cms, так как проект по моему умер уже.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB