Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Cannot update introduction on production: Cannot assign "<Book: Unknown Book>": "FragmentLink.work" must be a "Work" instance #445

Open
tcouch opened this issue Mar 20, 2024 · 1 comment · May be fixed by #451
Labels
bug Something isn't working High priority

Comments

@tcouch
Copy link
Collaborator

tcouch commented Mar 20, 2024

As a test user try to edit this antiquarian's introduction by clicking edit: https://www.ucl.ac.uk/history/frrant/antiquarian/49/

Introduction edit form fails to load and this error is generated:

Internal Server Error: /history/frrant/antiquarian/49/update/introduction/

ValueError at /history/frrant/antiquarian/49/update/introduction/
Cannot assign "<Book: Unknown Book>": "FragmentLink.work" must be a "Work" instance.

Request Method: GET
Request URL: https://frra-10-524.gtm.ucl.ac.uk/history/frrant/antiquarian/49/update/introduction/
Django Version: 3.2
Python Executable: /usr/local/bin/python Python Version: 3.8.6 Python Path: ['/app', '/usr/local/bin', '/usr/local/lib/python38.zip', '/usr/local/lib/python3.8', '/usr/local/lib/python3.8/lib-dynload', '/usr/local/lib/python3.8/site-packages', '/app/rard'] Server time: Wed, 20 Mar 2024 10:30:39 +0000 Installed Applications:
['collectfast',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.messages',
'django.contrib.staticfiles',
'django.contrib.humanize',
'django.contrib.admin',
'django.forms',
'bootstrap4',
'simple_history',
'crispy_forms',
'rard.users.apps.UsersConfig',
'rard.research',
'anymail']
Installed Middleware:
['django.middleware.security.SecurityMiddleware',
'whitenoise.middleware.WhiteNoiseMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.locale.LocaleMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.common.BrokenLinkEmailsMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
'simple_history.middleware.HistoryRequestMiddleware']

Traceback (most recent call last):
File "/usr/local/lib/python3.8/site-packages/django/core/handlers/exception.py", line 47, in inner
response = get_response(request)
File "/usr/local/lib/python3.8/site-packages/django/core/handlers/base.py", line 181, in _get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/usr/local/lib/python3.8/contextlib.py", line 75, in inner
return func(*args, **kwds)
File "/usr/local/lib/python3.8/site-packages/django/views/generic/base.py", line 70, in view
return self.dispatch(request, *args, **kwargs)
File "/usr/local/lib/python3.8/site-packages/django/contrib/auth/mixins.py", line 71, in dispatch
return super().dispatch(request, *args, **kwargs)
File "/app/rard/research/views/mixins.py", line 49, in dispatch
return super().dispatch(request, *args, **kwargs)
File "/usr/local/lib/python3.8/site-packages/django/contrib/auth/mixins.py", line 104, in dispatch
return super().dispatch(request, *args, **kwargs)
File "/usr/local/lib/python3.8/site-packages/django/views/generic/base.py", line 98, in dispatch
return handler(request, *args, **kwargs)
File "/usr/local/lib/python3.8/site-packages/django/views/generic/edit.py", line 190, in get
return super().get(request, *args, **kwargs)
File "/usr/local/lib/python3.8/site-packages/django/views/generic/edit.py", line 133, in get
return self.render_to_response(self.get_context_data())
File "/app/rard/research/views/mixins.py", line 207, in get_context_data
context = super().get_context_data(**kwargs)
File "/usr/local/lib/python3.8/site-packages/django/views/generic/edit.py", line 66, in get_context_data
kwargs['form'] = self.get_form()
File "/usr/local/lib/python3.8/site-packages/django/views/generic/edit.py", line 33, in get_form
return form_class(**self.get_form_kwargs())
File "/app/rard/research/forms.py", line 65, in init
self.instance.introduction.update_content_mentions()
File "/app/rard/utils/basemodel.py", line 138, in update_editable_mentions
self.save_without_historical_record()
File "/usr/local/lib/python3.8/site-packages/simple_history/models.py", line 138, in save_without_historical_record
ret = self.save(*args, **kwargs)
File "/app/rard/research/models/text_object_field.py", line 77, in save
obj.save()
File "/app/rard/research/models/antiquarian.py", line 180, in save
super().save(*args, **kwargs)
File "/usr/local/lib/python3.8/site-packages/django/db/models/base.py", line 726, in save
self.save_base(using=using, force_insert=force_insert,
File "/usr/local/lib/python3.8/site-packages/django/db/models/base.py", line 774, in save_base
post_save.send(
File "/usr/local/lib/python3.8/site-packages/django/dispatch/dispatcher.py", line 180, in send
return [
File "/usr/local/lib/python3.8/site-packages/django/dispatch/dispatcher.py", line 181, in
(receiver, receiver(signal=self, sender=sender, **named))
File "/app/rard/utils/decorators.py", line 22, in wrapper
signal_handler(*args, **kwargs)
File "/app/rard/research/models/antiquarian.py", line 418, in create_unknown_work
instance.unknown_work.save()
File "/app/rard/research/models/work.py", line 80, in save
super().save(*args, **kwargs)
File "/usr/local/lib/python3.8/site-packages/django/db/models/base.py", line 726, in save
self.save_base(using=using, force_insert=force_insert,
File "/usr/local/lib/python3.8/site-packages/django/db/models/base.py", line 774, in save_base
post_save.send(
File "/usr/local/lib/python3.8/site-packages/django/dispatch/dispatcher.py", line 180, in send
return [
File "/usr/local/lib/python3.8/site-packages/django/dispatch/dispatcher.py", line 181, in
(receiver, receiver(signal=self, sender=sender, **named))
File "/app/rard/utils/decorators.py", line 22, in wrapper
signal_handler(*args, **kwargs)
File "/app/rard/research/models/work.py", line 317, in create_unknown_book
collate_unknown(instance)
File "/app/rard/utils/decorators.py", line 22, in wrapper
signal_handler(*args, **kwargs)
File "/app/rard/research/models/work.py", line 306, in collate_unknown
collate_ub_links(instance, designated_unknown)
File "/app/rard/utils/shared_functions.py", line 54, in collate_ub_links
transfer_links(instance.antiquarian_work_fragmentlinks.all(), designated_unknown)
File "/app/rard/utils/shared_functions.py", line 63, in transfer_links
link.work = target_object
File "/usr/local/lib/python3.8/site-packages/django/db/models/fields/related_descriptors.py", line 215, in set
raise ValueError(

Exception Type: ValueError at /history/frrant/antiquarian/49/update/introduction/
Exception Value: Cannot assign "<Book: Unknown Book>": "FragmentLink.work" must be a "Work" instance.
Request information:
USER: tester

GET: No GET data

POST: No POST data

FILES: No FILES data

COOKIES:
csrftoken = 'TxDnNTtZI7Wi2ROU59gqajsTQEpGzE6uwV22yuwPlNhGpc3ssEa8IKfNR5kL1rPL'
cookie-agreed-version = '1.0.0'
cookie-agreed = '2'
cookie-agreed-categories = '%5B%22necessary_cookies%22%2C%22analytics_and_customisation_cookies%22%2C%22advertising_cookies%22%5D'
BIGipServerWWW-WEBDOCS_02_429pl_www-webdocs_02_429_d05_https = '4111735818.47873.0000'
sessionid = 'y19x9dghb8gk9ww2mgcn3dqyuqy7u96a'

META:
CSRF_COOKIE = 'TxDnNTtZI7Wi2ROU59gqajsTQEpGzE6uwV22yuwPlNhGpc3ssEa8IKfNR5kL1rPL'
HTTP_ACCEPT = '/'
HTTP_ACCEPT_ENCODING = 'gzip'
HTTP_ACCEPT_LANGUAGE = 'en-US,en;q=0.5'
HTTP_CDN_LOOP = 'cloudflare; subreqs=1'
HTTP_CF_CONNECTING_IP = '2a0a:ef40:10a4:3801:d5d3:71ef:2ba8:41bd'
HTTP_CF_EW_VIA = '15'
HTTP_CF_IPCOUNTRY = 'GB'
HTTP_CF_RAY = '8675073022cfdd23-LHR'
HTTP_CF_VISITOR = '{"scheme":"https"}'
HTTP_CF_WORKER = 'www.ucl.ac.uk'
HTTP_CONNECTION = 'close'
HTTP_COOKIE = 'csrftoken=TxDnNTtZI7Wi2ROU59gqajsTQEpGzE6uwV22yuwPlNhGpc3ssEa8IKfNR5kL1rPL; cookie-agreed-version=1.0.0; cookie-agreed=2; cookie-agreed-categories=%5B%22necessary_cookies%22%2C%22analytics_and_customisation_cookies%22%2C%22advertising_cookies%22%5D; BIGipServerWWW-WEBDOCS_02_429pl_www-webdocs_02_429_d05_https=4111735818.47873.0000; sessionid=y19x9dghb8gk9ww2mgcn3dqyuqy7u96a'
HTTP_DNT = '1'
HTTP_HOST = 'frra-10-524.gtm.ucl.ac.uk'
HTTP_HX_CURRENT_URL = 'https://www.ucl.ac.uk/history/frrant/antiquarian/49/'
HTTP_HX_REQUEST = 'true'
HTTP_REFERER = 'https://www.ucl.ac.uk/history/frrant/antiquarian/49/'
HTTP_SEC_FETCH_DEST = 'empty'
HTTP_SEC_FETCH_MODE = 'cors'
HTTP_SEC_FETCH_SITE = 'same-origin'
HTTP_SEC_GPC = '1'
HTTP_USER_AGENT = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:123.0) Gecko/20100101 Firefox/123.0'
HTTP_VIA = '1.1 www.ucl.ac.uk'
HTTP_X_CLIENT_IP = '172.71.178.96'
HTTP_X_FORWARDED_FOR = '172.71.178.96, 10.55.0.1, 10.56.0.20'
HTTP_X_FORWARDED_HOST = 'www.ucl.ac.uk'
HTTP_X_FORWARDED_PROTO = 'https'
HTTP_X_FORWARDED_SERVER = 'www.ucl.ac.uk'
HTTP_X_REAL_IP = '10.56.0.20'
PATH_INFO = '/history/frrant/antiquarian/49/update/introduction/'
QUERY_STRING = ''
RAW_URI = '/history/frrant/antiquarian/49/update/introduction/'
REMOTE_ADDR = '172.18.0.6'
REMOTE_PORT = '55032'
REQUEST_METHOD = 'GET'
SCRIPT_NAME = ''
SERVER_NAME = '0.0.0.0'
SERVER_PORT = '5000'
SERVER_PROTOCOL = 'HTTP/1.0'
SERVER_SOFTWARE = 'gunicorn/20.0.4'
gunicorn.socket = <socket.socket fd=9, family=AddressFamily.AF_INET, type=SocketKind.SOCK_STREAM, proto=0, laddr=('172.18.0.5', 5000), raddr=('172.18.0.6', 55032)> wsgi.errors = <gunicorn.http.wsgi.WSGIErrorsWrapper object at 0x7f0930768e50> wsgi.file_wrapper = <class 'gunicorn.http.wsgi.FileWrapper'> wsgi.input = <gunicorn.http.body.Body object at 0x7f09304f5e80> wsgi.input_terminated = True wsgi.multiprocess = False wsgi.multithread = False wsgi.run_once = False wsgi.url_scheme = 'http'
wsgi.version = '(1, 0)'

Settings:
Using settings module config.settings.production ABSOLUTE_URL_OVERRIDES = {} ADMINS = [('Amanda Ho-Lyn', '[email protected]'), ('Tom Couch', '[email protected]')] ADMIN_URL = 'admin/'
ALLOWED_HOSTS = ['.ucl.ac.uk', '144.82.250.194', '10.36.100.167', 'localhost', '0.0.0.0', 'iamahost'] ANYMAIL = {} APPEND_SLASH = True APPS_DIR = PosixPath('/app/rard') AUTHENTICATION_BACKENDS = ['django.contrib.auth.backends.ModelBackend']
AUTH_PASSWORD_VALIDATORS = ''
AUTH_USER_MODEL = 'users.User'
BOOTSTRAP4 = {'success_css_class': 'success', 'required_css_class': 'required'} CACHES = {'default': {'BACKEND': 'django.core.cache.backends.locmem.LocMemCache'}}
CACHE_MIDDLEWARE_ALIAS = 'default'
CACHE_MIDDLEWARE_KEY_PREFIX = '
'
CACHE_MIDDLEWARE_SECONDS = 600
COLLECTFAST_STRATEGY = 'collectfast.strategies.filesystem.FileSystemStrategy'
CRISPY_TEMPLATE_PACK = 'bootstrap4'
CSRF_COOKIE_AGE = 31449600
CSRF_COOKIE_DOMAIN = None
CSRF_COOKIE_HTTPONLY = True
CSRF_COOKIE_NAME = 'csrftoken'
CSRF_COOKIE_PATH = '/'
CSRF_COOKIE_SAMESITE = 'Lax'
CSRF_COOKIE_SECURE = True
CSRF_FAILURE_VIEW = 'django.views.csrf.csrf_failure'
CSRF_HEADER_NAME = 'HTTP_X_CSRFTOKEN'
CSRF_TRUSTED_ORIGINS = ['www.ucl.ac.uk'] CSRF_USE_SESSIONS = False DATABASES = {'default': {'NAME': 'rard', 'USER': 'research_software', 'PASSWORD': '', 'HOST': 'postgres', 'PORT': 5432, 'ENGINE': 'django.db.backends.postgresql', 'ATOMIC_REQUESTS': True, 'CONN_MAX_AGE': 60, 'AUTOCOMMIT': True, 'OPTIONS': {}, 'TIME_ZONE': None, 'TEST': {'CHARSET': None, 'COLLATION': None, 'MIGRATE': True, 'MIRROR': None, 'NAME': None}}} DATABASE_ROUTERS = [] DATA_UPLOAD_MAX_MEMORY_SIZE = 2621440 DATA_UPLOAD_MAX_NUMBER_FIELDS = 1000 DATETIME_FORMAT = 'N j, Y, P'
DATETIME_INPUT_FORMATS = ['%Y-%m-%d %H:%M:%S', '%Y-%m-%d %H:%M:%S.%f', '%Y-%m-%d %H:%M', '%m/%d/%Y %H:%M:%S', '%m/%d/%Y %H:%M:%S.%f', '%m/%d/%Y %H:%M', '%m/%d/%y %H:%M:%S', '%m/%d/%y %H:%M:%S.%f', '%m/%d/%y %H:%M'] DATE_FORMAT = 'N j, Y'
DATE_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'] DEBUG = False DEBUG_PROPAGATE_EXCEPTIONS = False DECIMAL_SEPARATOR = '.'
DEFAULT_AUTO_FIELD = 'django.db.models.AutoField'
DEFAULT_CHARSET = 'utf-8'
DEFAULT_EXCEPTION_REPORTER = 'django.views.debug.ExceptionReporter'
DEFAULT_EXCEPTION_REPORTER_FILTER = 'django.views.debug.SafeExceptionReporterFilter'
DEFAULT_FILE_STORAGE = 'django.core.files.storage.FileSystemStorage'
DEFAULT_FROM_EMAIL = 'Republican Antiquarians Research Database <[email protected]>'
DEFAULT_HASHING_ALGORITHM = 'sha256'
DEFAULT_INDEX_TABLESPACE = ''
DEFAULT_TABLESPACE = ''
DISALLOWED_USER_AGENTS = []
DJANGO_APPS = ['django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.sites', 'django.contrib.messages', 'django.contrib.staticfiles', 'django.contrib.humanize', 'django.contrib.admin', 'django.forms'] EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_FROM = 'Republican Antiquarians Research Database <[email protected]>'
EMAIL_HOST = 'isd-smtp.ucl.ac.uk'
EMAIL_HOST_PASSWORD = '
'
EMAIL_HOST_USER = ''
EMAIL_PORT = 25
EMAIL_SSL_CERTFILE = None
EMAIL_SSL_KEYFILE = ''
EMAIL_SUBJECT_PREFIX = '[Republican Antiquarians Research Database]'
EMAIL_TIMEOUT = 5
EMAIL_USE_LOCALTIME = False
EMAIL_USE_SSL = False
EMAIL_USE_TLS = False
FILE_UPLOAD_DIRECTORY_PERMISSIONS = None FILE_UPLOAD_HANDLERS = ['django.core.files.uploadhandler.MemoryFileUploadHandler', 'django.core.files.uploadhandler.TemporaryFileUploadHandler']
FILE_UPLOAD_MAX_MEMORY_SIZE = 2621440
FILE_UPLOAD_PERMISSIONS = 420
FILE_UPLOAD_TEMP_DIR = None
FIRST_DAY_OF_WEEK = 0
FIXTURE_DIRS = "('/app/rard/fixtures',)"
FORCE_SCRIPT_NAME = None
FORMAT_MODULE_PATH = None
FORM_RENDERER = 'django.forms.renderers.TemplatesSetting'
IGNORABLE_404_URLS = []
INSTALLED_APPS = ['collectfast', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.sites', 'django.contrib.messages', 'django.contrib.staticfiles', 'django.contrib.humanize', 'django.contrib.admin', 'django.forms', 'bootstrap4', 'simple_history', 'crispy_forms', 'rard.users.apps.UsersConfig', 'rard.research', 'anymail'] INTERNAL_IPS = [] LANGUAGES = [('af', 'Afrikaans'), ('ar', 'Arabic'), ('ar-dz', 'Algerian 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'), ('hy', 'Armenian'), ('ia', 'Interlingua'), ('id', 'Indonesian'), ('ig', 'Igbo'), ('io', 'Ido'), ('is', 'Icelandic'), ('it', 'Italian'), ('ja', 'Japanese'), ('ka', 'Georgian'), ('kab', 'Kabyle'), ('kk', 'Kazakh'), ('km', 'Khmer'), ('kn', 'Kannada'), ('ko', 'Korean'), ('ky', 'Kyrgyz'), ('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'), ('tg', 'Tajik'), ('th', 'Thai'), ('tk', 'Turkmen'), ('tr', 'Turkish'), ('tt', 'Tatar'), ('udm', 'Udmurt'), ('uk', 'Ukrainian'), ('ur', 'Urdu'), ('uz', 'Uzbek'), ('vi', 'Vietnamese'), ('zh-hans', 'Simplified Chinese'), ('zh-hant', 'Traditional Chinese')] LANGUAGES_BIDI = ['he', 'ar', 'ar-dz', 'fa', 'ur'] LANGUAGE_CODE = 'en-us'
LANGUAGE_COOKIE_AGE = None
LANGUAGE_COOKIE_DOMAIN = None
LANGUAGE_COOKIE_HTTPONLY = False
LANGUAGE_COOKIE_NAME = 'django_language'
LANGUAGE_COOKIE_PATH = '/'
LANGUAGE_COOKIE_SAMESITE = None
LANGUAGE_COOKIE_SECURE = False
LOCALE_PATHS = ['/app/locale']
LOCAL_APPS = ['rard.users.apps.UsersConfig', 'rard.research'] LOGGING = {'version': 1, 'disable_existing_loggers': False, 'filters': {'require_debug_false': {'()': 'django.utils.log.RequireDebugFalse'}}, 'formatters': {'verbose': {'format': '%(levelname)s %(asctime)s %(module)s %(process)d %(thread)d %(message)s'}}, 'handlers': {'mail_admins': {'level': 'ERROR', 'filters': ['require_debug_false'], 'class': 'django.utils.log.AdminEmailHandler'}, 'console': {'level': 'DEBUG', 'class': 'logging.StreamHandler', 'formatter': 'verbose'}}, 'root': {'level': 'INFO', 'handlers': ['console']}, 'loggers': {'django.request': {'handlers': ['mail_admins'], 'level': 'ERROR', 'propagate': True}, 'django.security.DisallowedHost': {'level': 'ERROR', 'handlers': ['console', 'mail_admins'], 'propagate': True}}} LOGGING_CONFIG = 'logging.config.dictConfig'
LOGIN_REDIRECT_URL = 'home'
LOGIN_URL = 'login'
LOGOUT_REDIRECT_URL = None
MANAGERS = [('Amanda Ho-Lyn', '[email protected]'), ('Tom Couch', '[email protected]')] MEDIA_ROOT = '/app/rard/media'
MEDIA_URL = '/media/'
MESSAGE_STORAGE = 'django.contrib.messages.storage.fallback.FallbackStorage'
MIDDLEWARE = ['django.middleware.security.SecurityMiddleware', 'whitenoise.middleware.WhiteNoiseMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.locale.LocaleMiddleware', 'django.middleware.common.CommonMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.common.BrokenLinkEmailsMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware', 'simple_history.middleware.HistoryRequestMiddleware']
MIGRATION_MODULES = {'sites': 'rard.contrib.sites.migrations'} MONTH_DAY_FORMAT = 'F j'
NUMBER_GROUPING = 0
PASSWORD_HASHERS = '
'
PASSWORD_RESET_TIMEOUT = ''
PASSWORD_RESET_TIMEOUT_DAYS = '
'
PREPEND_WWW = False
PRODUCTION_INSTANCE = True
READ_DOT_ENV_FILE = False
ROOT_DIR = PosixPath('/app')
ROOT_URLCONF = 'config.urls'
SECRET_KEY = '********************'
SECURE_BROWSER_XSS_FILTER = True
SECURE_CONTENT_TYPE_NOSNIFF = True
SECURE_HSTS_INCLUDE_SUBDOMAINS = True
SECURE_HSTS_PRELOAD = True
SECURE_HSTS_SECONDS = 60
SECURE_PROXY_SSL_HEADER = "('HTTP_X_FORWARDED_PROTO', 'https')"
SECURE_REDIRECT_EXEMPT = []
SECURE_REFERRER_POLICY = 'same-origin'
SECURE_SSL_HOST = None
SECURE_SSL_REDIRECT = True
SERVER_EMAIL = 'Republican Antiquarians Research Database <[email protected]>'
SESSION_CACHE_ALIAS = 'default'
SESSION_COOKIE_AGE = 1209600
SESSION_COOKIE_DOMAIN = None
SESSION_COOKIE_HTTPONLY = True
SESSION_COOKIE_NAME = 'sessionid'
SESSION_COOKIE_PATH = '/'
SESSION_COOKIE_SAMESITE = 'Lax'
SESSION_COOKIE_SECURE = True
SESSION_ENGINE = 'django.contrib.sessions.backends.db'
SESSION_EXPIRE_AT_BROWSER_CLOSE = False
SESSION_FILE_PATH = None
SESSION_SAVE_EVERY_REQUEST = False
SESSION_SERIALIZER = 'django.contrib.sessions.serializers.JSONSerializer'
SETTINGS_MODULE = 'config.settings.production'
SHORT_DATETIME_FORMAT = 'm/d/Y P'
SHORT_DATE_FORMAT = 'm/d/Y'
SIGNING_BACKEND = 'django.core.signing.TimestampSigner'
SILENCED_SYSTEM_CHECKS = []
SITE_ID = 1
STATICFILES_DIRS = ['/app/rard/static']
STATICFILES_FINDERS = ['django.contrib.staticfiles.finders.FileSystemFinder', 'django.contrib.staticfiles.finders.AppDirectoriesFinder']
STATICFILES_STORAGE = 'django.contrib.staticfiles.storage.StaticFilesStorage'
STATIC_ROOT = '/static'
STATIC_URL = '/history/frrant/static/'
TEMPLATES = [{'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': ['/app/rard/templates'], 'OPTIONS': {'loaders': [('django.template.loaders.cached.Loader', ['django.template.loaders.filesystem.Loader', 'django.template.loaders.app_directories.Loader'])], 'context_processors': ['django.template.context_processors.debug', 'django.template.context_processors.request', 'django.contrib.auth.context_processors.auth', 'django.template.context_processors.i18n', 'django.template.context_processors.media', 'django.template.context_processors.static', 'django.template.context_processors.tz', 'django.contrib.messages.context_processors.messages', 'rard.utils.context_processors.settings_context', 'rard.utils.context_processors.symbols_context']}}]
TEST_NON_SERIALIZED_APPS = []
TEST_RUNNER = 'django.test.runner.DiscoverRunner'
THIRD_PARTY_APPS = ['bootstrap4', 'simple_history', 'crispy_forms'] THOUSAND_SEPARATOR = ','
TIME_FORMAT = 'P'
TIME_INPUT_FORMATS = ['%H:%M:%S', '%H:%M:%S.%f', '%H:%M'] TIME_ZONE = 'UTC'
UPLOAD_FOLDER = 'uploads'
UPLOAD_ROOT = '/app/uploads'
URL_PREFIX = 'history/frrant/'
USE_I18N = True
USE_L10N = True
USE_THOUSAND_SEPARATOR = False
USE_TZ = True
USE_X_FORWARDED_HOST = False
USE_X_FORWARDED_PORT = False
WILDCARD_MANY_CHAR = '*'
WILDCARD_SINGLE_CHAR = '?'
WSGI_APPLICATION = 'config.wsgi.application'
X_FRAME_OPTIONS = 'DENY'
YEAR_MONTH_FORMAT = 'F Y'

@tcouch tcouch added bug Something isn't working High priority labels Mar 20, 2024
@acholyn
Copy link
Collaborator

acholyn commented May 3, 2024

related to #395 as the cause for this error

@acholyn acholyn linked a pull request May 3, 2024 that will close this issue
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working High priority
Projects
No open projects
Status: Awaiting internal review
Development

Successfully merging a pull request may close this issue.

2 participants