Вопрос по django-cms, django, python – Круто, рад, что у тебя все работает. Django-CMS может быть немного вспыльчивым, чтобы начать работать, но это сэкономило мне невероятное количество времени.

4

нашел удовлетворительного способа сделать это: у меня есть настройка djangocms, которая работает нормально. Но мне нужно добавить контент из таблицы вне CMS на мою домашнюю страницу и отобразить этот контент в шаблоне. Я могу сделать это, но отредактировав urls.py в CMS, чтобы использовать мои представления следующим образом ...

url(r'^', 'myapp.views.slideshow_info'),

... исключает любой контент из CMS. Я понимаю, что я просто получаю свои пользовательские представления, чтобы соответствовать представлениям CMS, но как мне этого добиться?

на данный момент мнение моего приложения говорит:

from myapp.models import model1, model2

def slideshow_info(request):
    return render_to_response('index.html', {'slideshow_list' : model1.objects.all()})

Большое спасибо

Ваш Ответ

1   ответ
6

анице Django-CMS. Вот документация о том, как это сделать:http://docs.django-cms.org/en/2.1.3/extending_cms/app_integration.html#app-hooks Выне должен Нужно изменить базовые шаблоны URL, чтобы специально перенаправить / на ваш взгляд.

До того, как стали доступны пользовательские хуки, я бы выполнил то, что вы пытаетесь сделать с помощью тегов шаблонов.

Надеюсь, это поможет вам.

Следовать за

Хорошо, на недавно завершенном сайте мне пришлось подключить приложение под названием «портфолио» для отображения изображений на главной странице сайта Django-CMS.

Вот соответствующие части кода:

#portfolio/cms_app.py
from django.utils.translation import ugettext_lazy as _

from cms.app_base import CMSApp
from cms.apphook_pool import apphook_pool

class PortfolioAppHook(CMSApp):
    name = _('Portfolio')
    urls = ['portfolio.urls']

apphook_pool.register(PortfolioAppHook)


#portfolio/urls.py
from django.conf.urls.defaults import *

urlpatterns = patterns('portfolio.views',
    url(r'^(?P<slug>[-\w]+)/

Как вы можете видеть из этого рабочего примера, я не изменил свои базовые URL-адреса, чтобы приспособить их к представлению домашней страницы, скорее, я предоставил URL-адреса для моего приложения-портфолио Django-CMS через cms_app.py

Надеюсь, это поможет вам.

, 'project_detail', name='project_detail'), url(r'^

Как вы можете видеть из этого рабочего примера, я не изменил свои базовые URL-адреса, чтобы приспособить их к представлению домашней страницы, скорее, я предоставил URL-адреса для моего приложения-портфолио Django-CMS через cms_app.py

Надеюсь, это поможет вам.

, 'portfolio_index', name='portfolio_index'), ) #portfolio/views.py from django.http import HttpResponseRedirect from django.contrib.auth.decorators import login_required from django.shortcuts import get_object_or_404, render from portfolio.models import Project def portfolio_index(request): project_objects = Project.for_public if request.user.is_anonymous() \ else Project.objects projects = project_objects.all().select_related(depth=1) return render('portfolio/index.html', {'projects' : projects}, request) def project_detail(request, slug): project = get_object_or_404(Project, slug=slug) if not project.public and request.user.is_anonymous(): return HttpResponseRedirect('/?login=true') return render('portfolio/project_detail.html', {'project' : project}, request) #urls.py (base urls) from django.conf import settings from django.conf.urls.defaults import * from django.contrib import admin from views import login_user, logout_user admin.autodiscover() urlpatterns = patterns('', (r'^admin/filebrowser/', include('filebrowser.urls')), (r'^admin/doc/', include('django.contrib.admindocs.urls')), (r'^admin/', include(admin.site.urls)), (r'^tinymce/', include('tinymce.urls')), url(r'^login/

Как вы можете видеть из этого рабочего примера, я не изменил свои базовые URL-адреса, чтобы приспособить их к представлению домашней страницы, скорее, я предоставил URL-адреса для моего приложения-портфолио Django-CMS через cms_app.py

Надеюсь, это поможет вам.

, login_user, name='login_user'), url(r'^logout/

Как вы можете видеть из этого рабочего примера, я не изменил свои базовые URL-адреса, чтобы приспособить их к представлению домашней страницы, скорее, я предоставил URL-адреса для моего приложения-портфолио Django-CMS через cms_app.py

Надеюсь, это поможет вам.

, logout_user, name='logout_user'), (r'^', include('sorl.thumbnail.urls')), (r'^', include('cms.urls')), ) if settings.SERVE_STATIC_MEDIA: urlpatterns += patterns('', (r'^' + settings.MEDIA_URL.lstrip('/'), include('appmedia.urls')), ) + urlpatterns

Как вы можете видеть из этого рабочего примера, я не изменил свои базовые URL-адреса, чтобы приспособить их к представлению домашней страницы, скорее, я предоставил URL-адреса для моего приложения-портфолио Django-CMS через cms_app.py

Надеюсь, это поможет вам.

Спасибо за ваш ответ. В некоторой степени это помогает, но у меня возникает та же проблема, когда я подключаю urls.py к моему приложению django, которое выглядит так: yuri2k
Я собираюсь добавить дополнительный пример кода в свой ответ, чтобы продемонстрировать, как я подключил пользовательское приложение к домашней странице недавно завершенного сайта. Brandon
Спасибо, Брэндон, за то, что изучили это. Я решил это немного по-другому: однажды я заметил, что фид моих приложений отображается в ВМЕСТО фида cms по этому шаблону, и немного выяснил, почему, я обнаружил, что мне не хватает контекстных процессоров в моем представлении. Примерно так (я не знаю, как вставить код в эти сообщения, извините): def def slideshow_info (запрос): return render_to_response ('index.html', {'slideshow_list': model1.objects.all ()}, context_instance = RequestContext (запрос)). yuri2k
Круто, рад, что у тебя все работает. Django-CMS может быть немного вспыльчивым, чтобы начать работать, но это сэкономило мне невероятное количество времени. Brandon
homepage.urlpatterns = [url (r '^', 'myapp.views.slideshow_list'),] yuri2k

Похожие вопросы