· 6 years ago · Sep 09, 2019, 07:12 AM
1TypeError at /api/avansa/issue/save
2unsupported operand type(s) for -: 'datetime.datetime' and 'NoneType'
3
4Request Method: POST
5Request URL: http://test.sgbgarant.ru/api/avansa/issue/save
6Django Version: 1.11.3
7Python Executable: /usr/bin/uwsgi-core
8Python Version: 3.5.2
9Python Path: ['.', '', '/srv/virtualenv/lib/python35.zip', '/srv/virtualenv/lib/python3.5', '/srv/virtualenv/lib/python3.5/plat-x86_64-linux-gnu', '/srv/virtualenv/lib/python3.5/lib-dynload', '/usr/lib/python3.5', '/usr/lib/python3.5/plat-x86_64-linux-gnu', '/srv/virtualenv/lib/python3.5/site-packages']
10Server time: Пн, 9 Сен 2019 10:06:57 +0300
11Installed Applications:
12['etf.apps.MarerConfig',
13 'demands_cabinet',
14 'django.contrib.admin',
15 'django.contrib.auth',
16 'django.contrib.contenttypes',
17 'django.contrib.sessions',
18 'django.contrib.messages',
19 'django.contrib.staticfiles',
20 'jquery',
21 'djangoformsetjs',
22 'mptt',
23 'ckeditor',
24 'corsheaders',
25 'bakery']
26Installed Middleware:
27['corsheaders.middleware.CorsMiddleware',
28 'django.middleware.security.SecurityMiddleware',
29 'django.contrib.sessions.middleware.SessionMiddleware',
30 'django.middleware.common.CommonMiddleware',
31 'django.contrib.auth.middleware.AuthenticationMiddleware',
32 'django.contrib.messages.middleware.MessageMiddleware',
33 'django.middleware.clickjacking.XFrameOptionsMiddleware',
34 'django.middleware.locale.LocaleMiddleware',
35 'django.middleware.csrf.CsrfViewMiddleware']
36
37
38Traceback:
39
40File "/srv/virtualenv/lib/python3.5/site-packages/django/core/handlers/exception.py" in inner
41 41. response = get_response(request)
42
43File "/srv/virtualenv/lib/python3.5/site-packages/django/core/handlers/base.py" in _get_response
44 187. response = self.process_exception_by_middleware(e, request)
45
46File "/srv/virtualenv/lib/python3.5/site-packages/django/core/handlers/base.py" in _get_response
47 185. response = wrapped_callback(request, *callback_args, **callback_kwargs)
48
49File "/srv/virtualenv/lib/python3.5/site-packages/django/views/decorators/csrf.py" in wrapped_view
50 58. return view_func(*args, **kwargs)
51
52File "/srv/virtualenv/lib/python3.5/site-packages/django/views/generic/base.py" in view
53 68. return self.dispatch(request, *args, **kwargs)
54
55File "/srv/virtualenv/lib/python3.5/site-packages/rest_framework/views.py" in dispatch
56 489. response = self.handle_exception(exc)
57
58File "/srv/virtualenv/lib/python3.5/site-packages/rest_framework/views.py" in handle_exception
59 449. self.raise_uncaught_exception(exc)
60
61File "/srv/virtualenv/lib/python3.5/site-packages/rest_framework/views.py" in dispatch
62 486. response = handler(request, *args, **kwargs)
63
64File "./etf/api/views.py" in post
65 126. issue = issue_serializer.save()
66
67File "/srv/virtualenv/lib/python3.5/site-packages/rest_framework/serializers.py" in save
68 210. self.instance = self.update(self.instance, validated_data)
69
70File "./etf/api/serializers.py" in update
71 423. result = super().update(instance, validated_data)
72
73File "/srv/virtualenv/lib/python3.5/site-packages/rest_framework/serializers.py" in update
74 955. instance.save()
75
76File "./etf/models/issue.py" in save
77 5203. if self.check_all_application_required_fields_filled():
78
79File "./etf/models/issue.py" in check_all_application_required_fields_filled
80 3621. checks.append(self.bg_sum is not None)
81
82File "./etf/models/issue.py" in bg_sum
83 496. if self.is_changed_more_than_seconds_ago(60) and cached_val is not None:
84
85File "./etf/models/issue.py" in is_changed_more_than_seconds_ago
86 488. timediff = timezone.now() - self.updated_at
87
88Exception Type: TypeError at /api/avansa/issue/save
89Exception Value: unsupported operand type(s) for -: 'datetime.datetime' and 'NoneType'
90Request information:
91USER: AnonymousUser
92
93GET: No GET data
94
95POST: No POST data
96
97FILES: No FILES data
98
99COOKIES: No cookie data
100
101META:
102CONTENT_LENGTH = '4401'
103CONTENT_TYPE = 'application/json'
104HTTP_ACCEPT = '*/*'
105HTTP_ACCEPT_ENCODING = 'gzip, deflate'
106HTTP_CACHE_CONTROL = 'no-cache'
107HTTP_CONNECTION = 'close'
108HTTP_HOST = 'test.sgbgarant.ru'
109HTTP_POSTMAN_TOKEN = 'ff9427b0-2caf-4845-97e4-09eec5311659'
110HTTP_USER_AGENT = 'PostmanRuntime/7.6.0'
111PATH_INFO = '/api/avansa/issue/save'
112QUERY_STRING = ''
113REMOTE_ADDR = '127.0.0.1'
114REQUEST_METHOD = 'POST'
115REQUEST_URI = '/api/avansa/issue/save'
116SCRIPT_NAME = ''
117SERVER_NAME = 'perseus.sgbgarant.ru'
118SERVER_PORT = '8000'
119SERVER_PROTOCOL = 'HTTP/1.0'
120uwsgi.core = 2
121uwsgi.node = b'perseus.sgbgarant.ru'
122uwsgi.version = b'2.0.12-debian'
123wsgi.errors = <_io.TextIOWrapper name=2 mode='w' encoding='UTF-8'>
124wsgi.file_wrapper = ''
125wsgi.input = <uwsgi._Input object at 0x7f60e41da750>
126wsgi.multiprocess = True
127wsgi.multithread = True
128wsgi.run_once = False
129wsgi.url_scheme = 'http'
130wsgi.version =
131
132Settings:
133Using settings module project.settings
134ABSOLUTE_URL_OVERRIDES = {}
135ADMINS = []
136ALLOWED_HOSTS = ['*']
137APPEND_SLASH = True
138AUTHENTICATION_BACKENDS = ['etf.utils.backends.CustomModelBackend']
139AUTHENTICATION_FAILED_ATTEMPTS_CACHE_KEY = '********************'
140AUTHENTICATION_FAILED_ATTEMPTS_CACHE_STORE_TIMEOUT = 1800
141AUTHENTICATION_FAILED_ATTEMPTS_LIMIT = 10
142AUTH_CERT_SIGN_CHECK_CLASS = 'custom.CryptoProSignCheck'
143AUTH_PASSWORD_VALIDATORS = '********************'
144AUTH_USER_MODEL = 'etf.User'
145BAKERY_VIEWS =
146BASE_DIR = '/srv/etf'
147BROKER_URL = 'redis://localhost:6379/2'
148BUILD_DIR = '/srv/etf/etf/templates'
149CACHES = {'notifications_rotate': {'KEY_PREFIX': '********************', 'LOCATION': 'redis://127.0.0.1:6379/10', 'OPTIONS': {'MAX_ENTRIES': 10000, 'CLIENT_CLASS': 'django_redis.client.DefaultClient'}, 'BACKEND': 'django_redis.cache.RedisCache'}, 'default': {'LOCATION': 'redis://127.0.0.1:6379/1', 'OPTIONS': {'CLIENT_CLASS': 'django_redis.client.DefaultClient'}, 'BACKEND': 'django_redis.cache.RedisCache'}}
150CACHE_MIDDLEWARE_ALIAS = 'default'
151CACHE_MIDDLEWARE_KEY_PREFIX = '********************'
152CACHE_MIDDLEWARE_SECONDS = 600
153CB639P_CACHING_TIMEOUT = 43200
154CB639P_DS_URL = 'http://localhost:8081'
155CELERYBEAT_SCHEDULE = {'reminder_about_request': {'schedule': <crontab: 0 14 * * * (m/h/d/dM/MY)>, 'task': 'etf.tasks.reminder_about_request'}, 'load_bg_in_briefcase': {'schedule': <crontab: 0 11 * * * (m/h/d/dM/MY)>, 'task': 'etf.tasks.loading_bg_in_briefcase'}, 'add-every-day': {'schedule': <crontab: 0 0 * * * (m/h/d/dM/MY)>, 'task': 'etf.tasks.data_delete'}, 'publish_44fz_tasks_to_oos': {'schedule': <crontab: 0 4 * * * (m/h/d/dM/MY)>, 'task': 'etf.tasks.publish_bgs_44fz_to_oos'}, 'update_bg_start_date': {'schedule': <crontab: 0 4 * 1 * (m/h/d/dM/MY)>, 'task': 'etf.tasks.update_bg_start_date'}, 'redeem_bgs_in_briefcase': {'schedule': <crontab: 0 1 * * * (m/h/d/dM/MY)>, 'task': 'etf.tasks.redeem_bgs_in_briefcase'}, 'sync-all-issues-principal-documents': {'schedule': <crontab: */30 * * * * (m/h/d/dM/MY)>, 'task': 'etf.tasks.sync_all_issues_principal_documents'}, 'try-close-workdays': {'schedule': <crontab: */10 * * * * (m/h/d/dM/MY)>, 'task': 'etf.tasks.try_close_workdays'}, 'issuance report': {'schedule': <crontab: 0 11 * * * (m/h/d/dM/MY)>, 'task': 'etf.tasks.send_issuance_report'}, 'email-messages-rotate': {'schedule': <crontab: */5 * * * * (m/h/d/dM/MY)>, 'task': 'etf.tasks.send_msg'}}
156CELERYD_CONCURRENCY = 16
157CELERY_ACCEPT_CONTENT = ['json']
158CELERY_ENABLE_UTC = True
159CELERY_IMPORTS = 'etf.tasks'
160CELERY_RESULT_SERIALIZER = 'json'
161CELERY_TASK_SERIALIZER = 'json'
162CELERY_TIMEZONE = 'Europe/Moscow'
163CSRF_COOKIE_AGE = 31449600
164CSRF_COOKIE_DOMAIN = None
165CSRF_COOKIE_HTTPONLY = False
166CSRF_COOKIE_NAME = 'csrftoken'
167CSRF_COOKIE_PATH = '/'
168CSRF_COOKIE_SECURE = False
169CSRF_FAILURE_VIEW = 'django.views.csrf.csrf_failure'
170CSRF_HEADER_NAME = 'HTTP_X_CSRFTOKEN'
171CSRF_TRUSTED_ORIGINS = []
172CSRF_USE_SESSIONS = False
173DADATA_CACHING_TIMEOUT = 43200
174DADATA_TOKEN = '********************'
175DATABASES = {'default': {'PORT': '5432', 'PASSWORD': '********************', 'NAME': 'etf', 'ENGINE': 'django.db.backends.postgresql', 'HOST': '127.0.0.1', 'ATOMIC_REQUESTS': False, 'AUTOCOMMIT': True, 'USER': 'etf', 'CONN_MAX_AGE': 0, 'OPTIONS': {}, 'TEST': {'COLLATION': None, 'CHARSET': None, 'NAME': None, 'MIRROR': None}, 'TIME_ZONE': None}}
176DATABASE_ROUTERS = []
177DATA_UPLOAD_MAX_MEMORY_SIZE = 268435456
178DATA_UPLOAD_MAX_NUMBER_FIELDS = 10240
179DATETIME_FORMAT = 'N j, Y, P'
180DATETIME_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']
181DATE_FORMAT = 'N j, Y'
182DATE_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']
183DEBUG = True
184DEBUG_PROPAGATE_EXCEPTIONS = False
185DECIMAL_SEPARATOR = '.'
186DEFAULT_CHARSET = 'utf-8'
187DEFAULT_CONTENT_TYPE = 'text/html'
188DEFAULT_EXCEPTION_REPORTER_FILTER = 'django.views.debug.SafeExceptionReporterFilter'
189DEFAULT_FILE_STORAGE = 'django.core.files.storage.FileSystemStorage'
190DEFAULT_FROM_EMAIL = 'info@sgbgarant.ru'
191DEFAULT_INDEX_TABLESPACE = ''
192DEFAULT_MANAGER_ID = 1
193DEFAULT_TABLESPACE = ''
194DISALLOWED_USER_AGENTS = []
195DO_NOT_REFORM_OUTER_SERVICES_CREATED_APPLICATION_DOC_ON_REGISTERING = False
196EGRUL_NALOG_URL = 'https://egrul.nalog.ru/'
197ELFIN_S3_CLIENTS_BUCKET_ACCESS_KEY_ID = '********************'
198ELFIN_S3_CLIENTS_BUCKET_ENDPOINT_URL = 'https://api.eric.s3storage.ru:443'
199ELFIN_S3_CLIENTS_BUCKET_NAME = 'testsgbcontragents'
200ELFIN_S3_CLIENTS_BUCKET_SECRET_ACCESS_KEY = '********************'
201ELFIN_S3_ORDERS_BUCKET_ACCESS_KEY_ID = '********************'
202ELFIN_S3_ORDERS_BUCKET_ENDPOINT_URL = 'https://api.eric.s3storage.ru:443'
203ELFIN_S3_ORDERS_BUCKET_NAME = 'testsgborders'
204ELFIN_S3_ORDERS_BUCKET_SECRET_ACCESS_KEY = '********************'
205EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
206EMAIL_HOST = 'smtp.mailgun.org'
207EMAIL_HOST_PASSWORD = '********************'
208EMAIL_HOST_USER = 'postmaster@sgbgarant.ru'
209EMAIL_PORT = '465'
210EMAIL_SSL_CERTFILE = None
211EMAIL_SSL_KEYFILE = '********************'
212EMAIL_SUBJECT_PREFIX = '[Django] '
213EMAIL_TIMEOUT = None
214EMAIL_USE_LOCALTIME = False
215EMAIL_USE_SSL = True
216EMAIL_USE_TLS = False
217ENABLE_WORK_DAY_PROCESSING = True
218FILE_CHARSET = 'utf-8'
219FILE_SIGN_CHECK_CLASS = 'custom.CryptoProSignCheck'
220FILE_UPLOAD_DIRECTORY_PERMISSIONS = None
221FILE_UPLOAD_HANDLERS = ['django.core.files.uploadhandler.MemoryFileUploadHandler', 'django.core.files.uploadhandler.TemporaryFileUploadHandler']
222FILE_UPLOAD_MAX_MEMORY_SIZE = 268435456
223FILE_UPLOAD_PERMISSIONS = None
224FILE_UPLOAD_TEMP_DIR = None
225FIRST_DAY_OF_WEEK = 0
226FIXTURE_DIRS = ['/srv/etf/fixtures']
227FORCE_SCRIPT_NAME = None
228FORMAT_MODULE_PATH = None
229FORM_RENDERER = 'django.forms.renderers.DjangoTemplates'
230IGNORABLE_404_URLS = []
231INSTALLED_APPS = ['etf.apps.MarerConfig', 'demands_cabinet', 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'jquery', 'djangoformsetjs', 'mptt', 'ckeditor', 'corsheaders', 'bakery']
232INTERNAL_IPS = []
233ISSUE_DOCUMENTS_PACKAGE_DEFAULT_OKOPF = '12300'
234KONTUR_FOCUS_API_KEY = '********************'
235KONTUR_FOCUS_API_KEYS = '********************'
236KONTUR_FOCUS_CACHING_TIMEOUT = 43200
237KONTUR_FOCUS_IGNORE_RESPONSE_ERRORS = False
238LANGUAGES = [('ru', 'Русский')]
239LANGUAGES_BIDI = ['he', 'ar', 'fa', 'ur']
240LANGUAGE_CODE = 'ru-ru'
241LANGUAGE_COOKIE_AGE = None
242LANGUAGE_COOKIE_DOMAIN = None
243LANGUAGE_COOKIE_NAME = 'django_language'
244LANGUAGE_COOKIE_PATH = '/'
245LIMIT_FINISHED_CONTRACTS = 1
246LOCALE_PATHS = ['/srv/etf/locale']
247LOGGING = {'loggers': {'django': {'level': 'INFO', 'handlers': ['console']}}, 'handlers': {'console': {'class': 'logging.StreamHandler'}}, 'version': 1, 'disable_existing_loggers': False}
248LOGGING_CONFIG = 'logging.config.dictConfig'
249LOGIN_REDIRECT_URL = '/accounts/profile/'
250LOGIN_URL = 'login'
251LOGOUT_REDIRECT_URL = None
252LOW_COST_ISSUES_DEFAULT_MANAGER_ID = 1
253MANAGERS = []
254MEDIA_ROOT = '/srv/etf/media'
255MEDIA_URL = '/media/'
256MESSAGE_STORAGE = 'django.contrib.messages.storage.fallback.FallbackStorage'
257MIDDLEWARE = ['corsheaders.middleware.CorsMiddleware', 'django.middleware.security.SecurityMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.common.CommonMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware', 'django.middleware.locale.LocaleMiddleware', 'django.middleware.csrf.CsrfViewMiddleware']
258MIDDLEWARE_CLASSES = ['django.middleware.common.CommonMiddleware', 'django.middleware.csrf.CsrfViewMiddleware']
259MIGRATION_MODULES = {}
260MONTH_DAY_FORMAT = 'F j'
261MORPHER_RU_CACHING_TIMEOUT = 604800
262MORPHER_RU_ENABLED = True
263NUMBER_GROUPING = 3
264OOS_PUB_WS_URL = 'http://localhost:8080/services/publish-bg'
265OUTER_SERVICES_REQ_TIMEOUT = 20
266PASSWORD_HASHERS = '********************'
267PASSWORD_RESET_TIMEOUT_DAYS = '********************'
268PIPELINE = {'PIPELINE_ENABLED': False}
269PREPEND_WWW = False
270REPORTS_FROM_EMAIL = 'info@etf.ru'
271REPORTS_RECIPIENTS_EMAILS = {'issuance': []}
272REST_FRAMEWORK = {'DEFAULT_PERMISSION_CLASSES': ['rest_framework.permissions.IsAuthenticated']}
273RESULT_BACKEND = 'redis://localhost:6379/3'
274ROOT_URLCONF = 'project.urls'
275SECRET_KEY = '********************'
276SECRET_MTA_TOKEN = '********************'
277SECURE_BROWSER_XSS_FILTER = False
278SECURE_CONTENT_TYPE_NOSNIFF = False
279SECURE_HSTS_INCLUDE_SUBDOMAINS = False
280SECURE_HSTS_PRELOAD = False
281SECURE_HSTS_SECONDS = 0
282SECURE_PROXY_SSL_HEADER = None
283SECURE_REDIRECT_EXEMPT = []
284SECURE_SSL_HOST = None
285SECURE_SSL_REDIRECT = False
286SERVER_EMAIL = 'root@localhost'
287SESSION_CACHE_ALIAS = 'default'
288SESSION_COOKIE_AGE = 1209600
289SESSION_COOKIE_DOMAIN = None
290SESSION_COOKIE_HTTPONLY = True
291SESSION_COOKIE_NAME = 'sessionid'
292SESSION_COOKIE_PATH = '/'
293SESSION_COOKIE_SECURE = False
294SESSION_ENGINE = 'django.contrib.sessions.backends.db'
295SESSION_EXPIRE_AT_BROWSER_CLOSE = False
296SESSION_FILE_PATH = None
297SESSION_SAVE_EVERY_REQUEST = False
298SESSION_SERIALIZER = 'django.contrib.sessions.serializers.JSONSerializer'
299SETTINGS_MODULE = 'project.settings'
300SHORT_DATETIME_FORMAT = 'm/d/Y P'
301SHORT_DATE_FORMAT = 'm/d/Y'
302SIGNING_BACKEND = 'django.core.signing.TimestampSigner'
303SILENCED_SYSTEM_CHECKS = []
304SITE_ROOT_URL = 'http://test.sgbgarant.ru'
305STATICFILES_DIRS = []
306STATICFILES_FINDERS = ['django.contrib.staticfiles.finders.FileSystemFinder', 'django.contrib.staticfiles.finders.AppDirectoriesFinder']
307STATICFILES_STORAGE = 'django.contrib.staticfiles.storage.StaticFilesStorage'
308STATIC_ROOT = '/srv/etf/static'
309STATIC_URL = '/static/'
310TDC_URL = 'http://venus.zmff.ru:8080/'
311TEMPLATES = [{'APP_DIRS': True, 'DIRS': [], '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']}, 'BACKEND': 'django.template.backends.django.DjangoTemplates'}]
312TEST_NON_SERIALIZED_APPS = []
313TEST_RUNNER = 'django.test.runner.DiscoverRunner'
314THOUSAND_SEPARATOR = ' '
315TIME_FORMAT = 'P'
316TIME_INPUT_FORMATS = ['%H:%M:%S', '%H:%M:%S.%f', '%H:%M']
317TIME_ZONE = 'Europe/Moscow'
318USE_ETAGS = False
319USE_I18N = True
320USE_L10N = True
321USE_THOUSAND_SEPARATOR = False
322USE_TZ = True
323USE_X_FORWARDED_HOST = False
324USE_X_FORWARDED_PORT = False
325VERIFY_EGRUL_NALOG = True
326WSGI_APPLICATION = 'project.wsgi.application'
327X_FRAME_OPTIONS = 'SAMEORIGIN'
328YEAR_MONTH_FORMAT = 'F Y'
329ZAKUPKI_GOV_CACHING_TIMEOUT = 43200
330ZAKUPKI_GOV_URL = 'http://zakupki.gov.ru/'
331
332
333You're seeing this error because you have DEBUG = True in your
334Django settings file. Change that to False, and Django will
335display a standard page generated by the handler for this status code.