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