· 7 years ago · Sep 05, 2018, 06:02 AM
1RelatedObjectDoesNotExist at /api/v1/auth/obtain-token/
2User has no transaction.
3
4Request Method: POST
5Request URL: https://api-avrist.jaqun.com/api/v1/auth/obtain-token/
6Django Version: 2.1.1
7Python Executable: /usr/bin/uwsgi
8Python Version: 3.6.2
9Python Path: ['.', '', '/opt/avrist_api/env/lib64/python36.zip', '/opt/avrist_api/env/lib64/python3.6', '/opt/avrist_api/env/lib64/python3.6/lib-dynload', '/usr/lib64/python3.6', '/usr/lib/python3.6', '/opt/avrist_api/env/lib/python3.6/site-packages']
10Server time: Wed, 5 Sep 2018 12:56:39 +0700
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 'rest_framework',
19 'rest_framework_jwt',
20 'django_filters',
21 'corsheaders',
22 'drf_yasg',
23 'secure_transaction.apps.SecureTransactionConfig',
24 'audit_trail.apps.AuditTrailConfig',
25 'core_api.apps.CoreApiConfig',
26 'agent_api.apps.AgentApiConfig']
27Installed Middleware:
28['django.middleware.security.SecurityMiddleware',
29 'corsheaders.middleware.CorsMiddleware',
30 'django.contrib.sessions.middleware.SessionMiddleware',
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 "/opt/avrist_api/env/lib/python3.6/site-packages/django/core/handlers/exception.py" in inner
41 34. response = get_response(request)
42
43File "/opt/avrist_api/env/lib/python3.6/site-packages/django/core/handlers/base.py" in _get_response
44 126. response = self.process_exception_by_middleware(e, request)
45
46File "/opt/avrist_api/env/lib/python3.6/site-packages/django/core/handlers/base.py" in _get_response
47 124. response = wrapped_callback(request, *callback_args, **callback_kwargs)
48
49File "/opt/avrist_api/env/lib/python3.6/site-packages/django/views/decorators/csrf.py" in wrapped_view
50 54. return view_func(*args, **kwargs)
51
52File "/opt/avrist_api/env/lib/python3.6/site-packages/django/views/generic/base.py" in view
53 68. return self.dispatch(request, *args, **kwargs)
54
55File "/opt/avrist_api/env/lib/python3.6/site-packages/rest_framework/views.py" in dispatch
56 483. response = self.handle_exception(exc)
57
58File "/opt/avrist_api/env/lib/python3.6/site-packages/rest_framework/views.py" in handle_exception
59 443. self.raise_uncaught_exception(exc)
60
61File "/opt/avrist_api/env/lib/python3.6/site-packages/rest_framework/views.py" in dispatch
62 480. response = handler(request, *args, **kwargs)
63
64File "./core_api/views/authentication.py" in post
65 73. data = jwt_response_payload_handler(token, user, request)
66
67File "./core_api/utils.py" in jwt_response_payload_handler
68 18. 'aes_key': bytes(user.transaction.aes_key).hex()
69
70File "/opt/avrist_api/env/lib/python3.6/site-packages/django/db/models/fields/related_descriptors.py" in __get__
71 414. self.related.get_accessor_name()
72
73Exception Type: RelatedObjectDoesNotExist at /api/v1/auth/obtain-token/
74Exception Value: User has no transaction.
75Request information:
76USER: AnonymousUser
77
78GET: No GET data
79
80POST: No POST data
81
82FILES: No FILES data
83
84COOKIES: No cookie data
85
86META:
87CONTENT_LENGTH = '660'
88CONTENT_TYPE = 'application/json; charset=UTF-8'
89DOCUMENT_ROOT = '/usr/share/nginx/html'
90HTTPS = 'on'
91HTTP_ACCEPT = 'application/json, text/plain, */*'
92HTTP_ACCEPT_ENCODING = 'gzip'
93HTTP_ACCEPT_LANGUAGE = 'id-ID,id;q=0.9,en-US;q=0.8,en;q=0.7'
94HTTP_AUTHORIZATION = 'qq4xdnb9tqvhvj3ap2f2laetgfqk536c'
95HTTP_CACHE_CONTROL = 'no-cache'
96HTTP_CF_CONNECTING_IP = '172.104.177.245'
97HTTP_CF_IPCOUNTRY = 'SG'
98HTTP_CF_RAY = '455674308e8f179e-SIN'
99HTTP_CF_VISITOR = '{"scheme":"https"}'
100HTTP_CONNECTION = 'Keep-Alive'
101HTTP_CONTENT_LENGTH = '660'
102HTTP_CONTENT_TYPE = 'application/json; charset=UTF-8'
103HTTP_HOST = 'api-avrist.jaqun.com'
104HTTP_ORIGIN = 'http://localhost:4200'
105HTTP_PRAGMA = 'no-cache'
106HTTP_REFERER = 'http://localhost:4200/landing'
107HTTP_USER_AGENT = 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36'
108HTTP_X_FORWARDED_FOR = '172.104.177.245'
109HTTP_X_FORWARDED_PROTO = 'https'
110PATH_INFO = '/api/v1/auth/obtain-token/'
111QUERY_STRING = ''
112REMOTE_ADDR = '162.158.165.197'
113REMOTE_PORT = '53132'
114REQUEST_METHOD = 'POST'
115REQUEST_SCHEME = 'https'
116REQUEST_URI = '/api/v1/auth/obtain-token/'
117SCRIPT_NAME = ''
118SERVER_NAME = 'api-avrist.jaqun.com'
119SERVER_PORT = '443'
120SERVER_PROTOCOL = 'HTTP/1.1'
121uwsgi.node = b'li1699-216.members.linode.com'
122uwsgi.version = b'2.0.15'
123wsgi.errors = <_io.TextIOWrapper name=2 mode='w' encoding='UTF-8'>
124wsgi.file_wrapper = ''
125wsgi.input = <uwsgi._Input object at 0x7faafc84ec90>
126wsgi.multiprocess = False
127wsgi.multithread = False
128wsgi.run_once = False
129wsgi.url_scheme = 'https'
130wsgi.version = '(1, 0)'
131
132Settings:
133Using settings module avrist_api.settings
134ABSOLUTE_URL_OVERRIDES = {}
135ADMINS = []
136ALLOWED_HOSTS = ['api-avrist.jaqun.com']
137APPEND_SLASH = True
138AUTHENTICATION_BACKENDS = ['django.contrib.auth.backends.ModelBackend']
139AUTH_PASSWORD_VALIDATORS = '********************'
140AUTH_USER_MODEL = 'auth.User'
141BASE_DIR = '/opt/avrist_api'
142CACHES = {'default': {'BACKEND': 'django.core.cache.backends.locmem.LocMemCache'}}
143CACHE_MIDDLEWARE_ALIAS = 'default'
144CACHE_MIDDLEWARE_KEY_PREFIX = '********************'
145CACHE_MIDDLEWARE_SECONDS = 600
146CORS_ALLOW_CREDENTIALS = True
147CORS_ORIGIN_WHITELIST = ['api-avrist.jaqun.com', 'localhost:4200']
148CSRF_COOKIE_AGE = 31449600
149CSRF_COOKIE_DOMAIN = None
150CSRF_COOKIE_HTTPONLY = False
151CSRF_COOKIE_NAME = 'csrftoken'
152CSRF_COOKIE_PATH = '/'
153CSRF_COOKIE_SAMESITE = 'Lax'
154CSRF_COOKIE_SECURE = False
155CSRF_FAILURE_VIEW = 'django.views.csrf.csrf_failure'
156CSRF_HEADER_NAME = 'HTTP_X_CSRFTOKEN'
157CSRF_TRUSTED_ORIGINS = []
158CSRF_USE_SESSIONS = False
159DATABASES = {'default': {'ENGINE': 'django.db.backends.postgresql_psycopg2', 'NAME': 'avrist_api', 'USER': 'frisidea', 'PASSWORD': '********************', 'HOST': '127.0.0.1', 'PORT': '5432', 'ATOMIC_REQUESTS': False, 'AUTOCOMMIT': True, 'CONN_MAX_AGE': 0, 'OPTIONS': {}, 'TIME_ZONE': None, 'TEST': {'CHARSET': None, 'COLLATION': None, 'NAME': None, 'MIRROR': None}}}
160DATABASE_ROUTERS = []
161DATA_UPLOAD_MAX_MEMORY_SIZE = 2621440
162DATA_UPLOAD_MAX_NUMBER_FIELDS = 1000
163DATETIME_FORMAT = 'N j, Y, P'
164DATETIME_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']
165DATE_FORMAT = 'N j, Y'
166DATE_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']
167DEBUG = True
168DEBUG_PROPAGATE_EXCEPTIONS = False
169DECIMAL_SEPARATOR = '.'
170DEFAULT_CHARSET = 'utf-8'
171DEFAULT_CONTENT_TYPE = 'text/html'
172DEFAULT_EXCEPTION_REPORTER_FILTER = 'django.views.debug.SafeExceptionReporterFilter'
173DEFAULT_FILE_STORAGE = 'django.core.files.storage.FileSystemStorage'
174DEFAULT_FROM_EMAIL = 'webmaster@localhost'
175DEFAULT_INDEX_TABLESPACE = ''
176DEFAULT_TABLESPACE = ''
177DISALLOWED_USER_AGENTS = []
178EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
179EMAIL_HOST = 'localhost'
180EMAIL_HOST_PASSWORD = '********************'
181EMAIL_HOST_USER = ''
182EMAIL_PORT = 25
183EMAIL_SSL_CERTFILE = None
184EMAIL_SSL_KEYFILE = '********************'
185EMAIL_SUBJECT_PREFIX = '[Django] '
186EMAIL_TIMEOUT = None
187EMAIL_USE_LOCALTIME = False
188EMAIL_USE_SSL = False
189EMAIL_USE_TLS = False
190FILE_CHARSET = 'utf-8'
191FILE_UPLOAD_DIRECTORY_PERMISSIONS = None
192FILE_UPLOAD_HANDLERS = ['django.core.files.uploadhandler.MemoryFileUploadHandler', 'django.core.files.uploadhandler.TemporaryFileUploadHandler']
193FILE_UPLOAD_MAX_MEMORY_SIZE = 2621440
194FILE_UPLOAD_PERMISSIONS = None
195FILE_UPLOAD_TEMP_DIR = None
196FIRST_DAY_OF_WEEK = 0
197FIXTURE_DIRS = []
198FORCE_SCRIPT_NAME = None
199FORMAT_MODULE_PATH = None
200FORM_RENDERER = 'django.forms.renderers.DjangoTemplates'
201IGNORABLE_404_URLS = []
202INSTALLED_APPS = ['django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'rest_framework', 'rest_framework_jwt', 'django_filters', 'corsheaders', 'drf_yasg', 'secure_transaction.apps.SecureTransactionConfig', 'audit_trail.apps.AuditTrailConfig', 'core_api.apps.CoreApiConfig', 'agent_api.apps.AgentApiConfig']
203INTERNAL_IPS = []
204ISO_8601 = 'iso-8601'
205JWT_AUTH = {'JWT_PUBLIC_KEY': '********************', 'JWT_PRIVATE_KEY': '********************', 'JWT_ALGORITHM': 'HS512', 'JWT_VERIFY': True, 'JWT_VERIFY_EXPIRATION': True, 'JWT_EXPIRATION_DELTA': datetime.timedelta(0, 18000), 'JWT_REFRESH_EXPIRATION_DELTA': datetime.timedelta(7), 'JWT_AUDIENCE': None, 'JWT_ISSUER': None, 'JWT_RESPONSE_PAYLOAD_HANDLER': 'core_api.utils.jwt_response_payload_handler', 'JWT_LEEWAY': 10, 'JWT_ALLOW_REFRESH': True, 'JWT_AUTH_HEADER_PREFIX': 'JWT'}
206LANGUAGES = [('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')]
207LANGUAGES_BIDI = ['he', 'ar', 'fa', 'ur']
208LANGUAGE_CODE = 'en-us'
209LANGUAGE_COOKIE_AGE = None
210LANGUAGE_COOKIE_DOMAIN = None
211LANGUAGE_COOKIE_NAME = 'django_language'
212LANGUAGE_COOKIE_PATH = '/'
213LOCALE_PATHS = []
214LOGGING = {}
215LOGGING_CONFIG = 'logging.config.dictConfig'
216LOGIN_REDIRECT_URL = '/accounts/profile/'
217LOGIN_URL = '/accounts/login/'
218LOGOUT_REDIRECT_URL = None
219MANAGERS = []
220MEDIA_ROOT = '/opt/avrist_api/root_media'
221MEDIA_URL = '/media/'
222MESSAGE_STORAGE = 'django.contrib.messages.storage.fallback.FallbackStorage'
223MIDDLEWARE = ['django.middleware.security.SecurityMiddleware', 'corsheaders.middleware.CorsMiddleware', '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']
224MIGRATION_MODULES = {}
225MONTH_DAY_FORMAT = 'F j'
226NUMBER_GROUPING = 0
227PASSWORD_HASHERS = '********************'
228PASSWORD_RESET_TIMEOUT_DAYS = '********************'
229PREPEND_WWW = False
230REQUEST_RSA_PRIVATE_KEY = '********************'
231RESPONSE_RSA_PUBLIC_KEY = '********************'
232REST_FRAMEWORK = {'DEFAULT_RENDERER_CLASSES': ('secure_transaction.renderers.SecureJSONRenderer', 'rest_framework.renderers.BrowsableAPIRenderer'), 'DEFAULT_PARSER_CLASSES': ('secure_transaction.parsers.SecureJSONParser', 'rest_framework.parsers.MultiPartParser'), 'DEFAULT_AUTHENTICATION_CLASSES': ('rest_framework_jwt.authentication.JSONWebTokenAuthentication',), 'DEFAULT_PERMISSION_CLASSES': ('rest_framework.permissions.IsAuthenticated',), 'DEFAULT_VERSIONING_CLASS': 'rest_framework.versioning.URLPathVersioning', 'DEFAULT_PAGINATION_CLASS': 'rest_framework.pagination.PageNumberPagination', 'DEFAULT_FILTER_BACKENDS': ('django_filters.rest_framework.DjangoFilterBackend', 'rest_framework.filters.SearchFilter'), 'PAGE_SIZE': 10, 'SEARCH_PARAM': 'search', 'ORDERING_PARAM': 'ordering', 'DEFAULT_VERSION': None, 'ALLOWED_VERSIONS': None, 'VERSION_PARAM': 'version', 'EXCEPTION_HANDLER': 'rest_framework.views.exception_handler', 'NON_FIELD_ERRORS_KEY': '********************', 'TEST_REQUEST_RENDERER_CLASSES': ('rest_framework.renderers.MultiPartRenderer', 'secure_transaction.renderers.SecureJSONRenderer'), 'TEST_REQUEST_DEFAULT_FORMAT': 'json', 'DATE_FORMAT': 'iso-8601', 'DATE_INPUT_FORMATS': ('iso-8601',), 'DATETIME_FORMAT': 'iso-8601', 'DATETIME_INPUT_FORMATS': ('iso-8601',), 'TIME_FORMAT': 'iso-8601', 'TIME_INPUT_FORMATS': ('iso-8601',), 'UNICODE_JSON': True, 'COMPACT_JSON': True, 'STRICT_JSON': True, 'COERCE_DECIMAL_TO_STRING': True, 'UPLOADED_FILES_USE_URL': True}
233ROOT_URLCONF = 'avrist_api.urls'
234SECRET_KEY = '********************'
235SECURE_BROWSER_XSS_FILTER = False
236SECURE_CONTENT_TYPE_NOSNIFF = False
237SECURE_HSTS_INCLUDE_SUBDOMAINS = False
238SECURE_HSTS_PRELOAD = False
239SECURE_HSTS_SECONDS = 0
240SECURE_PROXY_SSL_HEADER = None
241SECURE_REDIRECT_EXEMPT = []
242SECURE_SSL_HOST = None
243SECURE_SSL_REDIRECT = False
244SERVER_EMAIL = 'root@localhost'
245SESSION_CACHE_ALIAS = 'default'
246SESSION_COOKIE_AGE = 1209600
247SESSION_COOKIE_DOMAIN = None
248SESSION_COOKIE_HTTPONLY = True
249SESSION_COOKIE_NAME = 'sessionid'
250SESSION_COOKIE_PATH = '/'
251SESSION_COOKIE_SAMESITE = 'Lax'
252SESSION_COOKIE_SECURE = False
253SESSION_ENGINE = 'django.contrib.sessions.backends.db'
254SESSION_EXPIRE_AT_BROWSER_CLOSE = False
255SESSION_FILE_PATH = None
256SESSION_SAVE_EVERY_REQUEST = False
257SESSION_SERIALIZER = 'django.contrib.sessions.serializers.JSONSerializer'
258SETTINGS_MODULE = 'avrist_api.settings'
259SHORT_DATETIME_FORMAT = 'm/d/Y P'
260SHORT_DATE_FORMAT = 'm/d/Y'
261SIGNING_BACKEND = 'django.core.signing.TimestampSigner'
262SILENCED_SYSTEM_CHECKS = []
263STATICFILES_DIRS = "('/opt/avrist_api/static',)"
264STATICFILES_FINDERS = ['django.contrib.staticfiles.finders.FileSystemFinder', 'django.contrib.staticfiles.finders.AppDirectoriesFinder']
265STATICFILES_STORAGE = 'django.contrib.staticfiles.storage.StaticFilesStorage'
266STATIC_ROOT = '/opt/avrist_api/root_static'
267STATIC_URL = '/static/'
268SWAGGER_SETTINGS = {'SECURITY_DEFINITIONS': {'JWT': {'type': 'apiKey', 'name': 'Authorization', 'in': 'header'}}, 'USE_SESSION_AUTH': False}
269TEMPLATES = [{'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': ['/opt/avrist_api/templates'], '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']}}]
270TEST_NON_SERIALIZED_APPS = []
271TEST_RUNNER = 'django.test.runner.DiscoverRunner'
272THOUSAND_SEPARATOR = ','
273THUMBNAIL_FORCE_OVERWRITE = True
274TIME_FORMAT = 'P'
275TIME_INPUT_FORMATS = ['%H:%M:%S', '%H:%M:%S.%f', '%H:%M']
276TIME_ZONE = 'Asia/Jakarta'
277USE_I18N = True
278USE_L10N = True
279USE_THOUSAND_SEPARATOR = False
280USE_TZ = True
281USE_X_FORWARDED_HOST = False
282USE_X_FORWARDED_PORT = False
283WSGI_APPLICATION = 'avrist_api.wsgi.application'
284X_FRAME_OPTIONS = 'SAMEORIGIN'
285YEAR_MONTH_FORMAT = 'F Y'
286
287
288You're seeing this error because you have DEBUG = True in your
289Django settings file. Change that to False, and Django will
290display a standard page generated by the handler for this status code.