我正在研究一个django-oscar项目。我一直在寻找解决这个问题的方法。虽然,我在这里遇到过类似的问题,但我仍然无法解决问题。
我正在尝试创建其他网页,例如' about'和' contacts'。我已经检查了仪表板上的页面创建,但似乎无法完全按照我的要求进行操作。我希望能够将这些页面放在页脚区域。我能够将在仪表板上创建的这些页面显示到我的页脚,但只显示文本似乎很简单。想知道我是否可以做得更多。
我在我的apps文件夹中创建了一个应用。这是文件夹结构:
这是我的环境安装 -
pip freeze requirements.txt
Babel==2.3.4<
beautifulsoup4==4.5.1
colorama==0.3.7
coverage==3.7.1
coveralls==0.4.4
detox==0.10.0
Django==1.9.12
django-appconf==1.0.2
django-compressor==1.6
django-countries==4.0
django-debug-toolbar==1.5
django-extra-views==0.6.4
django-haystack==2.5.1
django-localflavor==1.3
django-nose==1.4.2
django-oscar==1.3
-e git://github.com/tangentlabs/django-oscar- paypal.git@76542cefa67170b10694ab431a0b35408d99b16e#egg=django_oscar_paypal
django-static-precompiler==1.5
django-tables2==1.0.7
django-treebeard==4.1.0
django-webtest==1.7.7
django-widget-tweaks==1.4.1
docopt==0.6.2
enum-compat==0.0.2
enum34==1.1.6
eventlet==0.20.0
factory-boy==2.7.0
fake-factory==0.7.2
flake8==2.2.3
funcsigs==1.0.2
greenlet==0.4.11
ipaddress==1.0.17
mccabe==0.5.2
mock==1.0.1
mod-wsgi==4.5.11
nose==1.3.7
pbr==1.10.0
pep8==1.7.0
phonenumbers==7.7.5
Pillow==3.4.2
pinocchio==0.4.1
pluggy==0.3.1
purl==1.3
py==1.4.31
pycountry==16.11.27.1
pyflakes==1.3.0
pytest==3.0.1
pytest-cov==2.3.1
pytest-django==3.0.0
python-dateutil==2.6.0
pytz==2016.10
PyYAML==3.12
requests==2.12.3
six==1.10.0
sorl-thumbnail==12.4a1
sqlparse==0.2.2
tox==2.1.0
Unidecode==0.4.19
virtualenv==15.1.0
waitress==1.0.1
WebOb==1.6.3
WebTest==2.0.16`
这是myapp views.py
from django.http import HttpResponse
from django.core.urlresolvers import reverse
def about(request):
return HttpResponse(request, "my about page", {})
def contacts(request):
return HttpResponse(request, "my contact page", {})
这是apps.myapp urls.py
from django.conf.urls import url
from django.conf.urls import patterns, include, url
from django.conf.urls.i18n import i18n_patterns`
from . import views
from apps.myapp import views
urlpatterns = patterns ('',
url(r'^en-gb/contacts/', views.contacts, name='contacts'),
url(r'^/about/', views.about, name='about'),
)
这里是mysite(root)urls.py
from django.conf.urls import patterns, include, url
from django.conf.urls.i18n import i18n_patterns
from django.conf import settings
from django.contrib import admin
from django.contrib.staticfiles.urls import staticfiles_urlpatterns
from django.conf.urls.static import static
from apps.app import application
from paypal.payflow.dashboard.app import application as payflow
from paypal.express.dashboard.app import application as express_dashboard
admin.autodiscover()
from apps.app import myapp_o
'''everything else has to have the include apart from the admin'''
urlpatterns = patterns
[
'',
(r'^admin/', admin.site.urls),
url(r'^i18n/', include('django.conf.urls.i18n')),
url(r'^myapp_o/', include('apps.myapp_o.urls')),
]
urlpatterns += i18n_patterns('',
# PayPal Express integration...
(r'^checkout/paypal/', include('paypal.express.urls')),
# Dashboard views for Payflow Pro
(r'^dashboard/paypal/payflow/', include(payflow.urls)),
# Dashboard views for Express
(r'^dashboard/paypal/express/', include(express_dashboard.urls)),
(r'', include(application.urls)),
'''(r'^myapp_o/', include('myapp_o.urls')),'''
)
if settings.DEBUG:
urlpatterns += staticfiles_urlpatterns()
urlpatterns += static(
settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
有人可以分享并告诉我哪里出错了吗?或者在仪表板中有更好的做法吗?
由于
夜
需要从我的设置中添加信息
导入os
INSTALLED_APPS = [
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.messages',
'django.contrib.admin',
'django.contrib.flatpages',
'django.contrib.staticfiles',
'mod_wsgi.server',
# External apps
# 1.5.7 still ships with South migrations in the wrong folder,
# 1.5.8 contains a fix. Upgrade when released.
# 'django_extensions',
'debug_toolbar',
# Apps from oscar
'paypal',
'compressor',
'widget_tweaks',
]
from oscar import get_core_apps
INSTALLED_APPS = INSTALLED_APPS + get_core_apps([
'apps.shipping',
'apps.checkout',
'apps.myapp',])
谢谢。
答案 0 :(得分:0)
让我们先检查你的代码:
在en
上,你不应该像这样导入。
apps/myapp/urls.py
因为后来from . import views
from apps.myapp import views
会覆盖第一个views
var。因此,应使用views
或from . import views
更改您的代码,以便明确导入。
其次,在Django 1.8之后,from views import about, contacts
不再使用urlpatterns
。您应该考虑在Django1.10(不推荐使用1.10 patterns
之后)使用url
函数来使用您的代码。
因此您的代码可以像这样更改:
patterns
我还会在您的网址末尾添加urlpatterns = [
url(r'^en-gb/contacts/$', views.contacts, name='contacts'),
url(r'^about/$', views.about, name='about'),
]
,以便与用户请求中的网址完全匹配。
第三,当我用Documentation搜索django文档时,
您可以使用django的$
与urls
包括String
。
我认为你的网址可能是这样的:
include('paypal.express.urls')
请记住,在使用字符串导入时,您不必从应用程序导入视图。 评论这件事是否有效。