2017-03-16 62 views
1

我有一个我正在开发的django-oscar项目。我一直在寻找解决这个问题的地方。虽然,我在这里遇到过类似的问题,但我仍然无法解决问题。ImportError:没有名为myapp_o.urls的模块

我正在尝试创建其他页面,例如'about'和'contacts'。我已经检查了创建页面的仪表板,但似乎无法做到我想要的。我希望能够将这些页面放在页脚区域。我能够将这些在仪表板上创建的页面显示给我的页脚,但它看起来很简单,只显示文本。想知道我能否做得更多。

我在我的应用程序文件夹中创建了一个应用程序。以下是文件夹结构:

folder structure

Full folder structure

这里是我的ENV安装 -

PIP冻结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-  [email protected]#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(根)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

让我们先检查你的代码:apps/myapp/urls.py

,你不应该导入这个样子。

from . import views 
from apps.myapp import views 

因为后面的views优先覆盖views var。所以你的代码应该改为from . import viewsfrom views import about, contacts以获得明确的导入。

二,在Django 1.8之后,urlpatterns不再使用patterns了。您应该考虑在Django1.10之后使用url函数来使用您的代码(不推荐使用1.10 patterns之后)。

因此您的代码可以改变这样的:

urlpatterns = [ 
    url(r'^en-gb/contacts/$', views.contacts, name='contacts'), 
    url(r'^about/$', views.about, name='about'), 
] 

我还可以添加您的网址的$年底完全匹配来自用户的请求URL。

第三,当我搜索Django文档与i18n_patterns

您可以使用Django的urlsString包括像include('paypal.express.urls')

我觉得你的URL可以是这样的:

urlpatterns = [ 
    url(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... 
    url(r'^checkout/paypal/', include('paypal.express.urls')), 
    # Dashboard views for Payflow Pro 
    url(r'^dashboard/paypal/payflow/', include(payflow.urls)), 
    # Dashboard views for Express 
    url(r'^dashboard/paypal/express/', include(express_dashboard.urls)), 
    url(r'', include('apps.myapp_o.urls')),  
) 

记住,你不必当你使用字符串进口从应用导入的意见。 评论如果这件事不起作用。

+0

我仍然具有相同的错误,除非我注释掉 – evepokua

+0

在根mysite的url.py urlpatterns的= [ URL(R '^管理员/',admin.site.urls) URL(R'^ I18N/',include('django.conf.urls.i18n')), #url(r'^ myapp_o /',include('apps.myapp_o.urls')), ] – evepokua

+0

urlpatterns + = i18n_patterns( #PayPal快速整合... url(r'^ checkout/paypal /',include('paypal.express.urls')), #控制板视图为Payflow Pro url(r'^ dashboard/paypal/payflow /',包括(payflow.urls)), #仪表板视图快速 url(r'^ dashboard/payp ('',include(application.urls)), #url(r'^ myapp_o /',include('myapp_o.urls')),包括(express_dashboard.urls)), url, ) – evepokua

相关问题