Ich versuche einen Django-Oscar-Shop zu einer bestehenden Django-Website hinzuzufügen.Wie kann man Django-Oscar neben anderen Apps haben?
Mein Problem ist, dass die Vorlagen der beiden irgendwie kollidieren, so dass ich entweder die bestehende Website oder den Shop sehen kann, aber nicht beides. Hier
ist das übergeordnete urls.py:
from django.conf.urls import include, url
from django.contrib import admin
from oscar.app import application
urlpatterns = [
url(r'^admin/', include(admin.site.urls)),
url(r'^', include('main.urls')),
# oscar
url(r'^shop/', include(application.urls)),
]
Und in den Einstellungen:
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [
# os.path.join(BASE_DIR, 'templates'),
OSCAR_MAIN_TEMPLATE_DIR
],
# 'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
'oscar.apps.search.context_processors.search_form',
'oscar.apps.promotions.context_processors.promotions',
'oscar.apps.checkout.context_processors.checkout',
'oscar.apps.customer.notifications.context_processors.notifications',
'oscar.core.context_processors.metadata',
'main.context_processors.google_analytics'
],
'loaders': [
'django.template.loaders.app_directories.Loader',
'django.template.loaders.filesystem.Loader',
],
},
},
]
Wenn ich die Reihenfolge der Lade wechseln, entweder in der ursprünglichen Website (in app 'main'), oder der Oscar-Shop, kann nicht mehr betreten/angesehen werden. Ich bin mir also nicht sicher, was für ein esoterisches Detail ich übersehe, und die Dokumente decken das nicht ab. Prost.
Was genau schief geht - können die Vorlagen nicht vollständig geladen werden oder wird nur die falsche Vorlage gerendert? Welche Template-Struktur haben Sie? Wie heißt Ihre Basisvorlage? – solarissmoke
index.html, erbt von base.html, ist ein gutes Beispiel. Wenn ich mit dem App_directories_loader zuerst auf den Stamm zugreife, wird er geladen. Wenn ich Loader wechsle, scheint es eine index.html zu haben, die von Oscar kommt (das inhaltlich leer ist, aber ein Oscar-Favicon hat). Also im Grunde die falsche Vorlage Rendering, irgendwie scheinen sie gleich benannt zu sein. Ich weiß nicht, wie ich das beheben würde, weil Oscar-Vorlagen nicht in meiner Kontrolle sind. – Meiji