· 7 years ago · Mar 27, 2018, 08:04 AM
1TypeError at /api/core/statistics/current_price/
2unsupported operand type(s) for *: 'NoneType' and 'decimal.Decimal'
3
4Request Method: GET
5Request URL: http://localhost:8000/api/core/statistics/current_price/
6Django Version: 2.0
7Python Executable: /usr/local/bin/python
8Python Version: 3.6.4
9Python Path: ['/app', '/usr/local/lib/python36.zip', '/usr/local/lib/python3.6', '/usr/local/lib/python3.6/lib-dynload', '/usr/local/lib/python3.6/site-packages', '/app']
10Server time: Tue, 27 Mar 2018 08:00:42 +0000
11Installed Applications:
12['django.contrib.admin',
13 'django.contrib.auth',
14 'django.contrib.contenttypes',
15 'django.contrib.sessions',
16 'django.contrib.messages',
17 'django.contrib.staticfiles',
18 'corsheaders',
19 'django_extensions',
20 'django_filters',
21 'rest_framework',
22 'rest_framework_jwt',
23 'rest_framework_swagger',
24 'solo',
25 'apps.accounts',
26 'apps.core']
27Installed Middleware:
28['django.middleware.security.SecurityMiddleware',
29 'django.contrib.sessions.middleware.SessionMiddleware',
30 'corsheaders.middleware.CorsMiddleware',
31 'django.middleware.common.CommonMiddleware',
32 'django.middleware.csrf.CsrfViewMiddleware',
33 'django.contrib.auth.middleware.AuthenticationMiddleware',
34 'django.contrib.messages.middleware.MessageMiddleware',
35 'django.middleware.clickjacking.XFrameOptionsMiddleware']
36
37
38Traceback:
39
40File "/usr/local/lib/python3.6/site-packages/django/core/handlers/exception.py" in inner
41 35. response = get_response(request)
42
43File "/usr/local/lib/python3.6/site-packages/django/core/handlers/base.py" in _get_response
44 128. response = self.process_exception_by_middleware(e, request)
45
46File "/usr/local/lib/python3.6/site-packages/django/core/handlers/base.py" in _get_response
47 126. response = wrapped_callback(request, *callback_args, **callback_kwargs)
48
49File "/usr/local/lib/python3.6/site-packages/django/views/decorators/csrf.py" in wrapped_view
50 54. return view_func(*args, **kwargs)
51
52File "/usr/local/lib/python3.6/site-packages/rest_framework/viewsets.py" in view
53 90. return self.dispatch(request, *args, **kwargs)
54
55File "/usr/local/lib/python3.6/site-packages/rest_framework/views.py" in dispatch
56 489. response = self.handle_exception(exc)
57
58File "/usr/local/lib/python3.6/site-packages/rest_framework/views.py" in handle_exception
59 449. self.raise_uncaught_exception(exc)
60
61File "/usr/local/lib/python3.6/site-packages/rest_framework/views.py" in dispatch
62 486. response = handler(request, *args, **kwargs)
63
64File "/app/apps/core/views.py" in current_price
65 49. 'price_usd': fund_config.token_price * get_btc_usd_rate(),
66
67Exception Type: TypeError at /api/core/statistics/current_price/
68Exception Value: unsupported operand type(s) for *: 'NoneType' and 'decimal.Decimal'
69Request information:
70USER: a-thedevtest1234
71
72GET: No GET data
73
74POST: No POST data
75
76FILES: No FILES data
77
78COOKIES: No cookie data
79
80META:
81CONTENT_LENGTH = ''
82CONTENT_TYPE = 'text/plain'
83DJANGO_ENV = 'docker-dev'
84DJANGO_SETTINGS_MODULE = 'fund.settings'
85DJANGO_STATIC_ROOT = '/app/backend-static'
86GATEWAY_INTERFACE = 'CGI/1.1'
87GPG_KEY = '0D96DF4D4110E5C43FBFB17F2D347EA6AA65421D'
88HOME = '/root'
89HOSTNAME = '9876240b0905'
90HTTP_ACCEPT = 'application/json, text/plain, */*'
91HTTP_ACCEPT_ENCODING = 'gzip, deflate, br'
92HTTP_ACCEPT_LANGUAGE = 'en-US,en;q=0.9,ru;q=0.8'
93HTTP_AUTHORIZATION = 'JWT eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyX2lkIjoxLCJ1c2VybmFtZSI6ImEtdGhlZGV2dGVzdDEyMzQiLCJleHAiOjE1MjIyMjQwNDEsImVtYWlsIjoidGhlZGV2dGVzdDEyMzRAZ21haWwuY29tIiwib3JpZ19pYXQiOjE1MjIxMzc2NDF9.3uLLMTNdq-I2lBF4tWArBq34OIN0GaJeINEZOcuPXEE'
94HTTP_CACHE_CONTROL = 'no-cache'
95HTTP_CONNECTION = 'keep-alive'
96HTTP_HOST = 'localhost:8000'
97HTTP_ORIGIN = 'http://localhost:8084'
98HTTP_PRAGMA = 'no-cache'
99HTTP_REFERER = 'http://localhost:8084/dashboard'
100HTTP_USER_AGENT = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36'
101LANG = 'C.UTF-8'
102PATH = '/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin'
103PATH_INFO = '/api/core/statistics/current_price/'
104POSTGRES_DB = 'fund'
105POSTGRES_PASSWORD = '9K2NFTXTN6'
106POSTGRES_USER = 'fund'
107PWD = '/app'
108PYTHON_PIP_VERSION = '9.0.1'
109PYTHON_VERSION = '3.6.4'
110QUERY_STRING = ''
111REMOTE_ADDR = '172.21.0.1'
112REMOTE_HOST = ''
113REQUEST_METHOD = 'GET'
114RUN_MAIN = 'true'
115SCRIPT_NAME = ''
116SERVER_NAME = '9876240b0905'
117SERVER_PORT = '8000'
118SERVER_PROTOCOL = 'HTTP/1.1'
119SERVER_SOFTWARE = 'WSGIServer/0.2'
120SHLVL = '1'
121TZ = 'UTC'
122_ = './manage.py'
123wsgi.errors = <_io.TextIOWrapper name='<stderr>' mode='w' encoding='UTF-8'>
124wsgi.file_wrapper = ''
125wsgi.input = <_io.BufferedReader name=14>
126wsgi.multiprocess = False
127wsgi.multithread = True
128wsgi.run_once = False
129wsgi.url_scheme = 'http'
130wsgi.version = '(1, 0)'
131
132Settings:
133Using settings module fund.settings
134ABSOLUTE_URL_OVERRIDES = {}
135ADMINS = []
136ADMIN_URL = '^backend-admin/'
137ALLOWED_HOSTS = ['*']
138APPEND_SLASH = True
139ASSET_ID = '1.3.334'
140AUTHENTICATION_BACKENDS = ['django.contrib.auth.backends.ModelBackend']
141AUTH_PASSWORD_VALIDATORS = '********************'
142AUTH_USER_MODEL = 'accounts.FundUser'
143BASE_DIR = '/app'
144BITSHARES_NODE_WSS = 'wss://node.testnet.bitshares.eu'
145BROKER_URL = 'redis://redis:6379/0'
146BTC_NODE_FEE = Decimal('0.0005')
147CACHES = {'default': {'BACKEND': 'django_redis.cache.RedisCache', 'LOCATION': 'redis://redis:6379/1', 'OPTIONS': {'CLIENT_CLASS': 'django_redis.client.DefaultClient'}, 'KEY_PREFIX': '********************'}}
148CACHE_MIDDLEWARE_ALIAS = 'default'
149CACHE_MIDDLEWARE_KEY_PREFIX = '********************'
150CACHE_MIDDLEWARE_SECONDS = 600
151CELERYBEAT_REDUNDANT_BACKEND_OPTIONS = {'host': 'redis', 'port': '6379', 'db': '0'}
152CELERYBEAT_SCHEDULE = {'payment_gateway': {'task': 'apps.core.tasks.process_payments', 'schedule': datetime.timedelta(0, 120)}, 'toke_price': {'task': 'apps.core.tasks.calculate_token_price', 'schedule': <crontab: 0 0 * * * (m/h/d/dM/MY)>}, 'investment_statistics': {'task': 'apps.core.tasks.cache_statistics', 'schedule': datetime.timedelta(0, 300)}, 'user_tokens': '********************'}
153CELERYBEAT_SCHEDULER = 'celery.beat.PersistentScheduler'
154CELERY_ACCEPT_CONTENT = ['json']
155CELERY_RESULT_BACKEND = 'redis://redis:6379/0'
156CELERY_RESULT_SERIALIZER = 'json'
157CELERY_SEND_EVENTS = True
158CELERY_TASK_SERIALIZER = 'json'
159CORS_ORIGIN_ALLOW_ALL = True
160CSRF_COOKIE_AGE = 31449600
161CSRF_COOKIE_DOMAIN = None
162CSRF_COOKIE_HTTPONLY = False
163CSRF_COOKIE_NAME = 'csrftoken'
164CSRF_COOKIE_PATH = '/'
165CSRF_COOKIE_SECURE = False
166CSRF_FAILURE_VIEW = 'django.views.csrf.csrf_failure'
167CSRF_HEADER_NAME = 'HTTP_X_CSRFTOKEN'
168CSRF_TRUSTED_ORIGINS = []
169CSRF_USE_SESSIONS = False
170DATABASES = {'default': {'ENGINE': 'django.db.backends.postgresql', 'NAME': 'fund', 'USER': 'fund', 'PASSWORD': '********************', 'HOST': 'db', 'PORT': 5432, 'ATOMIC_REQUESTS': False, 'AUTOCOMMIT': True, 'CONN_MAX_AGE': 0, 'OPTIONS': {}, 'TIME_ZONE': None, 'TEST': {'CHARSET': None, 'COLLATION': None, 'NAME': None, 'MIRROR': None}}}
171DATABASE_ROUTERS = []
172DATA_UPLOAD_MAX_MEMORY_SIZE = 2621440
173DATA_UPLOAD_MAX_NUMBER_FIELDS = 1000
174DATETIME_FORMAT = 'N j, Y, P'
175DATETIME_INPUT_FORMATS = ['%Y-%m-%d %H:%M:%S', '%Y-%m-%d %H:%M:%S.%f', '%Y-%m-%d %H:%M', '%Y-%m-%d', '%m/%d/%Y %H:%M:%S', '%m/%d/%Y %H:%M:%S.%f', '%m/%d/%Y %H:%M', '%m/%d/%Y', '%m/%d/%y %H:%M:%S', '%m/%d/%y %H:%M:%S.%f', '%m/%d/%y %H:%M', '%m/%d/%y']
176DATE_FORMAT = 'N j, Y'
177DATE_INPUT_FORMATS = ['%Y-%m-%d', '%m/%d/%Y', '%m/%d/%y', '%b %d %Y', '%b %d, %Y', '%d %b %Y', '%d %b, %Y', '%B %d %Y', '%B %d, %Y', '%d %B %Y', '%d %B, %Y']
178DEBUG = True
179DEBUG_PROPAGATE_EXCEPTIONS = False
180DECIMAL_SEPARATOR = '.'
181DEFAULT_CHARSET = 'utf-8'
182DEFAULT_CONTENT_TYPE = 'text/html'
183DEFAULT_EXCEPTION_REPORTER_FILTER = 'django.views.debug.SafeExceptionReporterFilter'
184DEFAULT_FILE_STORAGE = 'django.core.files.storage.FileSystemStorage'
185DEFAULT_FROM_EMAIL = 'webmaster@localhost'
186DEFAULT_INDEX_TABLESPACE = ''
187DEFAULT_TABLESPACE = ''
188DISALLOWED_USER_AGENTS = []
189EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
190EMAIL_HOST = 'localhost'
191EMAIL_HOST_PASSWORD = '********************'
192EMAIL_HOST_USER = ''
193EMAIL_PORT = 25
194EMAIL_SSL_CERTFILE = None
195EMAIL_SSL_KEYFILE = '********************'
196EMAIL_SUBJECT_PREFIX = '[Django] '
197EMAIL_TIMEOUT = None
198EMAIL_USE_LOCALTIME = False
199EMAIL_USE_SSL = False
200EMAIL_USE_TLS = False
201ENV = 'docker-dev'
202ETHERSCAN_API_TOKEN = '********************'
203FILE_CHARSET = 'utf-8'
204FILE_UPLOAD_DIRECTORY_PERMISSIONS = None
205FILE_UPLOAD_HANDLERS = ['django.core.files.uploadhandler.MemoryFileUploadHandler', 'django.core.files.uploadhandler.TemporaryFileUploadHandler']
206FILE_UPLOAD_MAX_MEMORY_SIZE = 2621440
207FILE_UPLOAD_PERMISSIONS = None
208FILE_UPLOAD_TEMP_DIR = None
209FIRST_DAY_OF_WEEK = 0
210FIXTURE_DIRS = []
211FORCE_SCRIPT_NAME = None
212FORMAT_MODULE_PATH = None
213FORM_RENDERER = 'django.forms.renderers.DjangoTemplates'
214FUND_FEE = Decimal('0.05')
215FUND_SYMBOL = 'AFUND'
216IGNORABLE_404_URLS = []
217INSTALLED_APPS = ['django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'corsheaders', 'django_extensions', 'django_filters', 'rest_framework', 'rest_framework_jwt', 'rest_framework_swagger', 'solo', 'apps.accounts', 'apps.core']
218INTERNAL_IPS = []
219JWT_AUTH = {'JWT_EXPIRATION_DELTA': datetime.timedelta(1), 'JWT_ALLOW_REFRESH': True}
220LANGUAGES = [('af', 'Afrikaans'), ('ar', 'Arabic'), ('ast', 'Asturian'), ('az', 'Azerbaijani'), ('bg', 'Bulgarian'), ('be', 'Belarusian'), ('bn', 'Bengali'), ('br', 'Breton'), ('bs', 'Bosnian'), ('ca', 'Catalan'), ('cs', 'Czech'), ('cy', 'Welsh'), ('da', 'Danish'), ('de', 'German'), ('dsb', 'Lower Sorbian'), ('el', 'Greek'), ('en', 'English'), ('en-au', 'Australian English'), ('en-gb', 'British English'), ('eo', 'Esperanto'), ('es', 'Spanish'), ('es-ar', 'Argentinian Spanish'), ('es-co', 'Colombian Spanish'), ('es-mx', 'Mexican Spanish'), ('es-ni', 'Nicaraguan Spanish'), ('es-ve', 'Venezuelan Spanish'), ('et', 'Estonian'), ('eu', 'Basque'), ('fa', 'Persian'), ('fi', 'Finnish'), ('fr', 'French'), ('fy', 'Frisian'), ('ga', 'Irish'), ('gd', 'Scottish Gaelic'), ('gl', 'Galician'), ('he', 'Hebrew'), ('hi', 'Hindi'), ('hr', 'Croatian'), ('hsb', 'Upper Sorbian'), ('hu', 'Hungarian'), ('ia', 'Interlingua'), ('id', 'Indonesian'), ('io', 'Ido'), ('is', 'Icelandic'), ('it', 'Italian'), ('ja', 'Japanese'), ('ka', 'Georgian'), ('kab', 'Kabyle'), ('kk', 'Kazakh'), ('km', 'Khmer'), ('kn', 'Kannada'), ('ko', 'Korean'), ('lb', 'Luxembourgish'), ('lt', 'Lithuanian'), ('lv', 'Latvian'), ('mk', 'Macedonian'), ('ml', 'Malayalam'), ('mn', 'Mongolian'), ('mr', 'Marathi'), ('my', 'Burmese'), ('nb', 'Norwegian BokmГÒl'), ('ne', 'Nepali'), ('nl', 'Dutch'), ('nn', 'Norwegian Nynorsk'), ('os', 'Ossetic'), ('pa', 'Punjabi'), ('pl', 'Polish'), ('pt', 'Portuguese'), ('pt-br', 'Brazilian Portuguese'), ('ro', 'Romanian'), ('ru', 'Russian'), ('sk', 'Slovak'), ('sl', 'Slovenian'), ('sq', 'Albanian'), ('sr', 'Serbian'), ('sr-latn', 'Serbian Latin'), ('sv', 'Swedish'), ('sw', 'Swahili'), ('ta', 'Tamil'), ('te', 'Telugu'), ('th', 'Thai'), ('tr', 'Turkish'), ('tt', 'Tatar'), ('udm', 'Udmurt'), ('uk', 'Ukrainian'), ('ur', 'Urdu'), ('vi', 'Vietnamese'), ('zh-hans', 'Simplified Chinese'), ('zh-hant', 'Traditional Chinese')]
221LANGUAGES_BIDI = ['he', 'ar', 'fa', 'ur']
222LANGUAGE_CODE = 'en-us'
223LANGUAGE_COOKIE_AGE = None
224LANGUAGE_COOKIE_DOMAIN = None
225LANGUAGE_COOKIE_NAME = 'django_language'
226LANGUAGE_COOKIE_PATH = '/'
227LOCALE_PATHS = []
228LOGGING = {'version': 1, 'disable_existing_loggers': False, 'formatters': {'simple': {'format': '[%(asctime)s] %(levelname)s %(message)s', 'datefmt': '%Y-%m-%d %H:%M:%S'}, 'verbose': {'format': '[%(asctime)s] %(levelname)s [%(name)s.%(funcName)s:%(lineno)d] %(message)s', 'datefmt': '%Y-%m-%d %H:%M:%S'}}, 'handlers': {'console': {'class': 'logging.StreamHandler', 'formatter': 'verbose'}, 'payment_gateway': {'level': 'INFO', 'class': 'logging.FileHandler', 'filename': '/app/logs/payment_gateway.log', 'formatter': 'simple'}, 'investment_statistics': {'level': 'INFO', 'class': 'logging.FileHandler', 'filename': '/app/logs/investment_statistics.log', 'formatter': 'simple'}}, 'loggers': {'django.request': {'level': 'INFO', 'handlers': ['console']}, 'payment_gateway': {'handlers': ['payment_gateway', 'console'], 'level': 'INFO', 'propagate': True}, 'investment_statistics': {'handlers': ['investment_statistics', 'console'], 'level': 'INFO', 'propagate': True}}}
229LOGGING_CONFIG = 'logging.config.dictConfig'
230LOGIN_REDIRECT_URL = '/accounts/profile/'
231LOGIN_URL = '/accounts/login/'
232LOGOUT_REDIRECT_URL = None
233MANAGERS = []
234MEDIA_ROOT = ''
235MEDIA_URL = ''
236MESSAGE_STORAGE = 'django.contrib.messages.storage.fallback.FallbackStorage'
237MIDDLEWARE = ['django.middleware.security.SecurityMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'corsheaders.middleware.CorsMiddleware', 'django.middleware.common.CommonMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware']
238MIGRATION_MODULES = {}
239MONTH_DAY_FORMAT = 'F j'
240NUMBER_GROUPING = 0
241PASSWORD_HASHERS = '********************'
242PASSWORD_RESET_TIMEOUT_DAYS = '********************'
243PAYMENT_GATEWAY_URL = 'http://payment-gateway:5000'
244PREPEND_WWW = False
245REFERRER = {'name': 'mrboruslee95', 'percent': 50}
246REGISTRAR = {'wif': '5JpuQSvb686dyLXybm5SnFNd2xz57baxuRZHvH9EYmr8NC2zwSh', 'name': 'mrboruslee95', 'id': '1.2.3605'}
247REST_FRAMEWORK = {'DEFAULT_PAGINATION_CLASS': 'apps.core.helpers.CustomPageNumberPagination', 'DEFAULT_AUTHENTICATION_CLASSES': ('rest_framework_jwt.authentication.JSONWebTokenAuthentication', 'rest_framework.authentication.SessionAuthentication'), 'DEFAULT_FILTER_BACKENDS': ('django_filters.rest_framework.DjangoFilterBackend',), 'PAGE_SIZE': 10}
248ROOT_URLCONF = 'fund.urls'
249SECRET_KEY = '********************'
250SECURE_BROWSER_XSS_FILTER = False
251SECURE_CONTENT_TYPE_NOSNIFF = False
252SECURE_HSTS_INCLUDE_SUBDOMAINS = False
253SECURE_HSTS_PRELOAD = False
254SECURE_HSTS_SECONDS = 0
255SECURE_PROXY_SSL_HEADER = None
256SECURE_REDIRECT_EXEMPT = []
257SECURE_SSL_HOST = None
258SECURE_SSL_REDIRECT = False
259SERVER_EMAIL = 'root@localhost'
260SESSION_CACHE_ALIAS = 'default'
261SESSION_COOKIE_AGE = 1209600
262SESSION_COOKIE_DOMAIN = None
263SESSION_COOKIE_HTTPONLY = True
264SESSION_COOKIE_NAME = 'sessionid'
265SESSION_COOKIE_PATH = '/'
266SESSION_COOKIE_SECURE = False
267SESSION_ENGINE = 'django.contrib.sessions.backends.db'
268SESSION_EXPIRE_AT_BROWSER_CLOSE = False
269SESSION_FILE_PATH = None
270SESSION_SAVE_EVERY_REQUEST = False
271SESSION_SERIALIZER = 'django.contrib.sessions.serializers.JSONSerializer'
272SETTINGS_MODULE = 'fund.settings'
273SHORT_DATETIME_FORMAT = 'm/d/Y P'
274SHORT_DATE_FORMAT = 'm/d/Y'
275SIGNING_BACKEND = 'django.core.signing.TimestampSigner'
276SILENCED_SYSTEM_CHECKS = []
277STATICFILES_DIRS = []
278STATICFILES_FINDERS = ['django.contrib.staticfiles.finders.FileSystemFinder', 'django.contrib.staticfiles.finders.AppDirectoriesFinder']
279STATICFILES_STORAGE = 'django.contrib.staticfiles.storage.StaticFilesStorage'
280STATIC_ROOT = '/app/backend-static'
281STATIC_URL = '/backend-static/'
282TEMPLATES = [{'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': [], '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']}}]
283TEST_NON_SERIALIZED_APPS = []
284TEST_RUNNER = 'django.test.runner.DiscoverRunner'
285THOUSAND_SEPARATOR = ','
286TIME_FORMAT = 'P'
287TIME_INPUT_FORMATS = ['%H:%M:%S', '%H:%M:%S.%f', '%H:%M']
288TIME_ZONE = 'UTC'
289USE_ETAGS = False
290USE_I18N = True
291USE_L10N = True
292USE_THOUSAND_SEPARATOR = False
293USE_TZ = True
294USE_X_FORWARDED_HOST = False
295USE_X_FORWARDED_PORT = False
296WSGI_APPLICATION = 'fund.wsgi.application'
297X_FRAME_OPTIONS = 'SAMEORIGIN'
298YEAR_MONTH_FORMAT = 'F Y'
299
300
301You're seeing this error because you have DEBUG = True in your
302Django settings file. Change that to False, and Django will
303display a standard page generated by the handler for this status code.