- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在与 oscar 一起构建一个基于 django 的电子商务项目。我 pip 安装了 django-oscar 并按照官方文档指南设置 settings.py 和根 url.py 文件。当我尝试运行服务器时,出现以下错误:
AttributeError: 'AppConfig' object has no attribute 'urls'
我在Windows 7、python 3.7.2、django 2.2.2、django-oscar 1.6.2<上运行/strong>
下面是我的 settings.py 和 url.py 文件:
Settings.py:
import os
from oscar.defaults import *
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
SECRET_KEY = '###############################'
DEBUG = True
ALLOWED_HOSTS = []
from oscar import get_core_apps
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
"django.contrib.sites",
"django.contrib.flatpages",
"compressor",
"widget_tweaks",
] + get_core_apps(['forked_apps.checkout'])
SITE_ID = 1
MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
"oscar.apps.basket.middleware.BasketMiddleware",
"django.contrib.flatpages.middleware.FlatpageFallbackMiddleware",
]
AUTHETICATION_BACKENDS = (
"oscar.apps.customer.auth_backends.EmailBackend",
"django.contrib.auth.backends.ModelBackend",
)
EMAIL_BACKEND = "django.core.mail.backends.console.EmailBackend"
ROOT_URLCONF = 'commehub_oscar.urls'
from oscar import OSCAR_MAIN_TEMPLATE_DIR
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.template.context_processors.i18n',
'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",
],
},
},
]
WSGI_APPLICATION = 'commehub_oscar.wsgi.application'
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
'USER': '',
'PASSWORD': '',
'HOST': '',
'PORT': '',
'ATOMIC_REQUESTS': True,
}
}
HAYSTACK_CONNECTIONS = {
"default":{
"ENGINE":"haystack.backends.simple_backend.SimpleEngine",
},
}
AUTH_PASSWORD_VALIDATORS = [
{
'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',
},
{
'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator',
},
{
'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator',
},
{
'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator',
},
]
LANGUAGE_CODE = 'en-us'
TIME_ZONE = 'UTC'
USE_I18N = True
USE_L10N = True
USE_TZ = True
STATIC_URL = '/static/'
MEDIA_URL = "/media/"
STATIC_ROOT = "static"
MEDIA_ROOT = "media"
OSCAR_INITIAL_ORDER_STATUS = 'Pending'
OSCAR_INITIAL_LINE_STATUS = 'Pending'
OSCAR_ORDER_STATUS_PIPELINE = {
'Pending': ('Being processed', 'Cancelled',),
'Being processed': ('Processed', 'Cancelled',),
'Cancelled': (),
}
OSCAR_DEFAULT_CURRENCY = "NGN"
url.py
from django.conf.urls import include
from django.contrib import admin
from django.urls import path
from oscar.app import application
from django.conf import settings
from django.conf.urls.static import static
from django.apps import apps
urlpatterns = [
path("i18n/",include('django.conf.urls.i18n')),
path('admin/', admin.site.urls),
# path("",application.urls),
path('', include(apps.get_app_config('oscar').urls[0])),
]+ static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
这是完整的错误日志
Exception in thread django-main-thread:
Traceback (most recent call last):
File "C:\Users\user\Anaconda3\envs\mydjangoenv\lib\threading.py", line 917, in _bootstrap_inner
self.run()
File "C:\Users\user\Anaconda3\envs\mydjangoenv\lib\threading.py", line 865, in run
self._target(*self._args, **self._kwargs)
File "C:\Users\user\Anaconda3\envs\mydjangoenv\lib\site-packages\django\utils\autoreload.py", line 54, in wrapper
fn(*args, **kwargs)
File "C:\Users\user\Anaconda3\envs\mydjangoenv\lib\site-packages\django\core\management\commands\runserver.py", line 117,
in inner_run
self.check(display_num_errors=True)
File "C:\Users\user\Anaconda3\envs\mydjangoenv\lib\site-packages\django\core\management\base.py", line 390, in check
include_deployment_checks=include_deployment_checks,
File "C:\Users\user\Anaconda3\envs\mydjangoenv\lib\site-packages\django\core\management\base.py", line 377, in _run_checks
return checks.run_checks(**kwargs)
File "C:\Users\user\Anaconda3\envs\mydjangoenv\lib\site-packages\django\core\checks\registry.py", line 72, in run_checks
new_errors = check(app_configs=app_configs)
File "C:\Users\user\Anaconda3\envs\mydjangoenv\lib\site-packages\django\core\checks\urls.py", line 13, in check_url_config
return check_resolver(resolver)
File "C:\Users\user\Anaconda3\envs\mydjangoenv\lib\site-packages\django\core\checks\urls.py", line 23, in check_resolver
return check_method()
File "C:\Users\user\Anaconda3\envs\mydjangoenv\lib\site-packages\django\urls\resolvers.py", line 398, in check
for pattern in self.url_patterns:
File "C:\Users\user\Anaconda3\envs\mydjangoenv\lib\site-packages\django\utils\functional.py", line 80, in __get__
res = instance.__dict__[self.name] = self.func(instance)
File "C:\Users\user\Anaconda3\envs\mydjangoenv\lib\site-packages\django\urls\resolvers.py", line 579, in url_patterns
patterns = getattr(self.urlconf_module, "urlpatterns", self.urlconf_module)
File "C:\Users\user\Anaconda3\envs\mydjangoenv\lib\site-packages\django\utils\functional.py", line 80, in __get__
res = instance.__dict__[self.name] = self.func(instance)
File "C:\Users\user\Anaconda3\envs\mydjangoenv\lib\site-packages\django\urls\resolvers.py", line 572, in urlconf_module
return import_module(self.urlconf_name)
File "C:\Users\user\Anaconda3\envs\mydjangoenv\lib\importlib\__init__.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 1006, in _gcd_import
File "<frozen importlib._bootstrap>", line 983, in _find_and_load
File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 677, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 728, in exec_module
File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
File "C:\Users\user\Desktop\python\my_django_stuffs\commehub_oscar\commehub_oscar\urls.py", line 29, in <module>
path('', include(apps.get_app_config('oscar').urls[0])),
AttributeError: 'AppConfig' object has no attribute 'urls'
最佳答案
您正在使用 Oscar 2.0 和 Oscar 1.6 的说明,这就是它不适合您的原因。
Oscar 2.0 中加载应用程序配置的方式在 Oscar 2.0 中发生了显着变化,并且不向后兼容。具体来说,Oscar 1.6 中的 URL 不会从您当前尝试从中加载的 AppConfig
对象加载。
1.6 版的文档可在 https://django-oscar.readthedocs.io/en/releases-1.6/internals/getting_started.html 获取。 :
from django.conf.urls import include, url
from django.contrib import admin
from oscar.app import application
urlpatterns = [
url(r'^i18n/', include('django.conf.urls.i18n')),
# The Django admin is not officially supported; expect breakage.
# Nonetheless, it's often useful for debugging.
url(r'^admin/', include(admin.site.urls)),
url(r'', include(application.urls)),
]
关于python - 属性错误: 'AppConfig' object has no attribute 'urls' when trying to runserver,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56589961/
我刚刚遇到了一个非常奇怪的行为。这是代码: // So far everything's fine val x: Try[Try[Unit]] = Try(Try{}) x: scala.util.T
“输出”是一个序列化的 OpenStruct。 定义标题 try(:output).try(:data).try(:title) 结束 什么会更好? :) 最佳答案 或者只是这样: def title
我有以下元组 - (t1,t2) :(Try,Try) 我想检查两者是否成功或其中之一是否失败,但避免代码重复。像这样的东西: (t1,t2) match { case (Success(v1),Su
是否必须放置内部 try-with-resources 或其中一个 try-with-resources 中的所有内容都会自动关闭? try (BasicDataSource ds = Bas
有一点特殊,尝试创建一段 try catch 代码来处理 GoogleTokenResponse,但编译器在 try 时抛出异常错误。有什么想法吗? 错误信息: | Loading Grails 2.
它几乎可以在所有语言中找到,而且我大部分时间都在使用它。 我不知道它是内部的,不知道它是如何真正起作用的。 它如何在任何语言的运行时在 native 级别工作? 例如:如果在 try 内部发生 sta
为什么在 readFile2() 中我需要捕获 FileNotFoundException 以及稍后由 close( ) 方法,并且在 try-with-resources(inside readfi
我正在使用 Apache POI 尝试读取 Word 文件,但即使您使用过 Apache POI,这仍然应该是可以回答的。在 HWPF.extractor 包中有两个对象:WordExtractor
如果try-catch的catch block 中抛出异常,那么finally block 会被调用吗? try { //some thing which throws error } cat
这个问题已经有答案了: What's the purpose of try-with-resources statements? (7 个回答) 已关闭 3 年前。 我一直在查看代码,并且已经看到了对
这个问题已经有答案了: What's the purpose of try-with-resources statements? (7 个回答) 已关闭 3 年前。 我一直在查看代码,并且已经看到了对
我正在使用 Try::Tiny尝试捕捉。 代码如下: use Try::Tiny; try { print "In try"; wrongsubroutine(); # undefi
我想知道这样的代码是否会在抛出异常后总是中断而不继续运行,因此代码不会继续执行第二个 temp.dodaj(b)。 Avto *a = new Avto("lambo",4); Avt
我知道在try子句中必须有一个与资源关联的变量声明。 但是除了被分配一个通常的资源实例化之外,它是否可以被分配一个已经存在的资源,例如: public String getAsString(HttpS
我有一个写的方法。此方法仅扫描用户输入的整数输入。如果用户输入一个字符值,它将抛出一个输入不匹配异常,这是在我的 Try-Catch 语句中处理的。问题是,如果用户输入任何不是数字的东西,然后抛出异常
我注意到这不会编译: PrintWriter printWriter = new PrintWriter("test.txt"); printWriter.append('a'); printWrit
我经常看到人们写这样的代码: try: some_function() except: print 'something' 当我认为这样做更干净时: try: some_functio
该应用程序将在第二个显示器上正常显示内容。问题是当我旋转 iPad 时内容不会在 iPad 上旋转。 看过: http://developer.apple.com/library/ios/#qa/qa
我正在学习 java,我发现我不喜欢的一件事通常是当我有这样的代码时: import java.util.*; import java.io.*; public class GraphProblem
我使用 C++ 有一段时间了,对普通的 try/catch 很熟悉。但是,我现在发现自己在 Windows 上,在 VisualStudio 中编码以进行 COM 开发。代码的几个部分使用了如下内容:
我是一名优秀的程序员,十分优秀!