cursor already closed
Request Method: | GET |
---|---|
Request URL: | http://auslan.org.au/dictionary/gloss/God1a.html?lastmatch=gold-1 |
Django Version: | 3.1.13 |
Exception Type: | InterfaceError |
Exception Value: | cursor already closed |
Exception Location: | /usr/local/lib/python3.8/site-packages/django/db/utils.py, line 97, in inner |
Python Executable: | /usr/local/bin/python |
Python Version: | 3.8.3 |
Python Path: | ['/usr/src/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'] |
Server time: | Fri, 29 Mar 2024 07:00:32 +1100 |
/usr/local/lib/python3.8/site-packages/django/db/utils.py
, line 97, in inner
raise dj_exc_value.with_traceback(traceback) from exc_value
def __call__(self, func):
# Note that we are intentionally not using @wraps here for performance
# reasons. Refs #21109.
def inner(*args, **kwargs):
with self:
return func(*args, **kwargs)…
return inner
def load_backend(backend_name):
"""
Return a database backend's "base" module given a fully qualified database
Variable | Value |
---|---|
args | (100,) |
func | <built-in method fetchmany of psycopg2.extensions.cursor object at 0x7fb60c019d60> |
kwargs | {} |
self | <django.db.utils.DatabaseErrorWrapper object at 0x7fb60c290580> |
/usr/local/lib/python3.8/site-packages/django/core/handlers/exception.py
, line 47, in inner
response = await sync_to_async(response_for_exception, thread_sensitive=False)(request, exc)
return response
return inner
else:
@wraps(get_response)
def inner(request):
try:
response = get_response(request)…
except Exception as exc:
response = response_for_exception(request, exc)
return response
return inner
Variable | Value |
---|---|
exc | InterfaceError('cursor already closed') |
get_response | <bound method BaseHandler._get_response of <django.core.handlers.wsgi.WSGIHandler object at 0x7fb60c712cd0>> |
request | <WSGIRequest: GET '/dictionary/gloss/God1a.html?lastmatch=gold-1'> |
/usr/local/lib/python3.8/site-packages/django/core/handlers/base.py
, line 181, in _get_response
if response is None:
wrapped_callback = self.make_view_atomic(callback)
# If it is an asynchronous view, run it in a subthread.
if asyncio.iscoroutinefunction(wrapped_callback):
wrapped_callback = async_to_sync(wrapped_callback)
try:
response = wrapped_callback(request, *callback_args, **callback_kwargs)…
except Exception as e:
response = self.process_exception_by_middleware(e, request)
if response is None:
raise
# Complain if the view returned None (a common error).
Variable | Value |
---|---|
callback | <function login_required_config.<locals>.wrapper at 0x7fb60c2b28b0> |
callback_args | () |
callback_kwargs | {'idgloss': 'God1a'} |
middleware_method | <bound method CsrfViewMiddleware.process_view of <django.middleware.csrf.CsrfViewMiddleware object at 0x7fb60c367f10>> |
request | <WSGIRequest: GET '/dictionary/gloss/God1a.html?lastmatch=gold-1'> |
response | None |
self | <django.core.handlers.wsgi.WSGIHandler object at 0x7fb60c712cd0> |
wrapped_callback | <function login_required_config.<locals>.wrapper at 0x7fb60c2b28b0> |
/usr/local/lib/python3.8/site-packages/dictionary/views.py
, line 57, in wrapper
Like @login_required if the ALWAYS_REQUIRE_LOGIN setting is True.
'''
def wrapper(*args, **kwargs):
if getattr(settings, 'ALWAYS_REQUIRE_LOGIN', False):
decorated_function = login_required(function)
return decorated_function(*args, **kwargs)
else:
return function(*args, **kwargs)…
return wrapper
def map_image_for_regions(regions):
"""Get the right map images for this region set
"""
Variable | Value |
---|---|
args | (<WSGIRequest: GET '/dictionary/gloss/God1a.html?lastmatch=gold-1'>,) |
function | <function gloss at 0x7fb60c2b2820> |
kwargs | {'idgloss': 'God1a'} |
/usr/local/lib/python3.8/site-packages/dictionary/views.py
, line 302, in gloss
trans = allkwds[0]
videourl = gloss.get_video_url()
if not os.path.exists(os.path.join(settings.MEDIA_ROOT, videourl)):
videourl = None
# navigation gives us the next and previous signs
nav = gloss.navigation(request.user.has_perm('dictionary.search_gloss'))…
# the gloss update form for staff
update_form = None
if request.user.has_perm('dictionary.search_gloss'):
update_form = GlossModelForm(instance=gloss)
Variable | Value |
---|---|
allkwds | <QuerySet [<Translation: 58070-God1a-God>]> |
can_view_not_inWeb | False |
gloss | <Gloss: 58070-God1a> |
glosscount | 5171 |
glosses | <QuerySet [<Gloss: 58070-God1a>]> |
glossposn | 4165 |
idgloss | 'God1a' |
request | <WSGIRequest: GET '/dictionary/gloss/God1a.html?lastmatch=gold-1'> |
trans | <Translation: 58070-God1a-God> |
videourl | None |
/usr/local/lib/python3.8/site-packages/dictionary/models.py
, line 432, in navigation
return [(field.name, field.value_to_string(self)) for field in Gloss._meta.fields]
def navigation(self, is_staff):
"""Return a gloss navigation structure that can be used to
generate next/previous links from within a template page"""
result = dict()
result['next'] = self.next_dictionary_gloss(is_staff)…
result['prev'] = self.prev_dictionary_gloss(is_staff)
return result
def admin_next_gloss(self):
"""next gloss in the admin view, shortcut for next_dictionary_gloss with staff=True"""
Variable | Value |
---|---|
is_staff | False |
result | {} |
self | <Gloss: 58070-God1a> |
/usr/local/lib/python3.8/site-packages/dictionary/models.py
, line 455, in next_dictionary_gloss
"""Find the next gloss in dictionary order"""
if self.sn == None:
return None
elif staff:
set = Gloss.objects.filter(sn__gt=self.sn).order_by('sn')
else:
set = Gloss.objects.filter(sn__gt=self.sn, inWeb__exact=True).order_by('sn')
if set:…
return set[0]
else:
return None
def prev_dictionary_gloss(self, staff=False):
"""Find the previous gloss in dictionary order"""
Variable | Value |
---|---|
self | <Gloss: 58070-God1a> |
set | <QuerySet [<Gloss: 58080-gold>, <Gloss: 58100-FS:GMM(GRANDMOTHER)>, <Gloss: 58110-FS:GFF(GRANDFATHER)>, <Gloss: 58120-make>, <Gloss: 58130-move-motion.SA>, <Gloss: 58140-umbrella>, <Gloss: 58150-twist1a>, <Gloss: 58170-pepper-mill>, <Gloss: 58190-coffee>, <Gloss: 58200-car.VIC>, <Gloss: 58210-tram.STH>, <Gloss: 58211-magnify>, <Gloss: 58220-gesture>, <Gloss: 58230-believe-not>, <Gloss: 58240-let-go>, <Gloss: 58250-mop>, <Gloss: 58270-ski>, <Gloss: 58280-swing1a>, <Gloss: 58290-carpenter>, <Gloss: 58295-empathy1a>, '...(remaining elements truncated)...']> |
staff | False |
/usr/local/lib/python3.8/site-packages/django/db/models/query.py
, line 291, in __bool__
3. self.iterator()
- Responsible for turning the rows into model objects.
"""
self._fetch_all()
return iter(self._result_cache)
def __bool__(self):
self._fetch_all()…
return bool(self._result_cache)
def __getitem__(self, k):
"""Retrieve an item or slice from the set of results."""
if not isinstance(k, (int, slice)):
raise TypeError(
Variable | Value |
---|---|
self | <QuerySet [<Gloss: 58080-gold>, <Gloss: 58100-FS:GMM(GRANDMOTHER)>, <Gloss: 58110-FS:GFF(GRANDFATHER)>, <Gloss: 58120-make>, <Gloss: 58130-move-motion.SA>, <Gloss: 58140-umbrella>, <Gloss: 58150-twist1a>, <Gloss: 58170-pepper-mill>, <Gloss: 58190-coffee>, <Gloss: 58200-car.VIC>, <Gloss: 58210-tram.STH>, <Gloss: 58211-magnify>, <Gloss: 58220-gesture>, <Gloss: 58230-believe-not>, <Gloss: 58240-let-go>, <Gloss: 58250-mop>, <Gloss: 58270-ski>, <Gloss: 58280-swing1a>, <Gloss: 58290-carpenter>, <Gloss: 58295-empathy1a>, '...(remaining elements truncated)...']> |
/usr/local/lib/python3.8/site-packages/django/db/models/query.py
, line 1308, in _fetch_all
c._known_related_objects = self._known_related_objects
c._iterable_class = self._iterable_class
c._fields = self._fields
return c
def _fetch_all(self):
if self._result_cache is None:
self._result_cache = list(self._iterable_class(self))…
if self._prefetch_related_lookups and not self._prefetch_done:
self._prefetch_related_objects()
def _next_is_sticky(self):
"""
Indicate that the next filter call and the one following that should
Variable | Value |
---|---|
self | <QuerySet [<Gloss: 58080-gold>, <Gloss: 58100-FS:GMM(GRANDMOTHER)>, <Gloss: 58110-FS:GFF(GRANDFATHER)>, <Gloss: 58120-make>, <Gloss: 58130-move-motion.SA>, <Gloss: 58140-umbrella>, <Gloss: 58150-twist1a>, <Gloss: 58170-pepper-mill>, <Gloss: 58190-coffee>, <Gloss: 58200-car.VIC>, <Gloss: 58210-tram.STH>, <Gloss: 58211-magnify>, <Gloss: 58220-gesture>, <Gloss: 58230-believe-not>, <Gloss: 58240-let-go>, <Gloss: 58250-mop>, <Gloss: 58270-ski>, <Gloss: 58280-swing1a>, <Gloss: 58290-carpenter>, <Gloss: 58295-empathy1a>, '...(remaining elements truncated)...']> |
/usr/local/lib/python3.8/site-packages/django/db/models/query.py
, line 53, in __iter__
def __iter__(self):
queryset = self.queryset
db = queryset.db
compiler = queryset.query.get_compiler(using=db)
# Execute the query. This will also fill compiler.select, klass_info,
# and annotations.
results = compiler.execute_sql(chunked_fetch=self.chunked_fetch, chunk_size=self.chunk_size)…
select, klass_info, annotation_col_map = (compiler.select, compiler.klass_info,
compiler.annotation_col_map)
model_cls = klass_info['model']
select_fields = klass_info['select_fields']
model_fields_start, model_fields_end = select_fields[0], select_fields[-1] + 1
init_list = [f[0].target.attname
Variable | Value |
---|---|
compiler | <django.db.models.sql.compiler.SQLCompiler object at 0x7fb60c0b00d0> |
db | 'default' |
queryset | <QuerySet [<Gloss: 58080-gold>, <Gloss: 58100-FS:GMM(GRANDMOTHER)>, <Gloss: 58110-FS:GFF(GRANDFATHER)>, <Gloss: 58120-make>, <Gloss: 58130-move-motion.SA>, <Gloss: 58140-umbrella>, <Gloss: 58150-twist1a>, <Gloss: 58170-pepper-mill>, <Gloss: 58190-coffee>, <Gloss: 58200-car.VIC>, <Gloss: 58210-tram.STH>, <Gloss: 58211-magnify>, <Gloss: 58220-gesture>, <Gloss: 58230-believe-not>, <Gloss: 58240-let-go>, <Gloss: 58250-mop>, <Gloss: 58270-ski>, <Gloss: 58280-swing1a>, <Gloss: 58290-carpenter>, <Gloss: 58295-empathy1a>, '...(remaining elements truncated)...']> |
self | <django.db.models.query.ModelIterable object at 0x7fb60c0b0370> |
/usr/local/lib/python3.8/site-packages/django/db/models/sql/compiler.py
, line 1189, in execute_sql
)
if not chunked_fetch or not self.connection.features.can_use_chunked_reads:
try:
# If we are using non-chunked reads, we return the same data
# structure as normally, but ensure it is all read into memory
# before going any further. Use chunked_fetch if requested,
# unless the database doesn't support it.
return list(result)…
finally:
# done with the cursor
cursor.close()
return result
def as_subquery_condition(self, alias, columns, compiler):
Variable | Value |
---|---|
chunk_size | 100 |
chunked_fetch | False |
cursor | <django.db.backends.postgresql.base.CursorDebugWrapper object at 0x7fb60c0b0b50> |
params | (58070,) |
result | <generator object cursor_iter at 0x7fb60c076cf0> |
result_type | 'multi' |
self | <django.db.models.sql.compiler.SQLCompiler object at 0x7fb60c0b00d0> |
sql | ('SELECT "dictionary_gloss"."id", "dictionary_gloss"."idgloss", ' '"dictionary_gloss"."annotation_idgloss", "dictionary_gloss"."bsltf", ' '"dictionary_gloss"."asltf", "dictionary_gloss"."aslgloss", ' '"dictionary_gloss"."asloantf", "dictionary_gloss"."bslgloss", ' '"dictionary_gloss"."bslloantf", "dictionary_gloss"."regional_template", ' '"dictionary_gloss"."blend", "dictionary_gloss"."blendtf", ' '"dictionary_gloss"."compound", "dictionary_gloss"."comptf", ' '"dictionary_gloss"."domhndsh", "dictionary_gloss"."subhndsh", ' '"dictionary_gloss"."final_domhndsh", "dictionary_gloss"."final_subhndsh", ' '"dictionary_gloss"."locprim", "dictionary_gloss"."final_loc", ' '"dictionary_gloss"."locsecond", "dictionary_gloss"."initial_secondary_loc", ' '"dictionary_gloss"."final_secondary_loc", ' '"dictionary_gloss"."initial_palm_orientation", ' '"dictionary_gloss"."final_palm_orientation", ' '"dictionary_gloss"."initial_relative_orientation", ' '"dictionary_gloss"."final_relative_orientation", "dictionary_gloss"."inWeb", ' '"dictionary_gloss"."isNew", "dictionary_gloss"."inittext", ' '"dictionary_gloss"."morph", "dictionary_gloss"."sedefinetf", ' '"dictionary_gloss"."segloss", "dictionary_gloss"."sense", ' '"dictionary_gloss"."sn", "dictionary_gloss"."StemSN" FROM "dictionary_gloss" ' 'WHERE ("dictionary_gloss"."inWeb" AND "dictionary_gloss"."sn" > %s) ORDER BY ' '"dictionary_gloss"."sn" ASC') |
/usr/local/lib/python3.8/site-packages/django/db/models/sql/compiler.py
, line 1606, in cursor_iter
def cursor_iter(cursor, sentinel, col_count, itersize):
"""
Yield blocks of rows from a cursor and ensure the cursor is closed when
done.
"""
try:
for rows in iter((lambda: cursor.fetchmany(itersize)), sentinel):…
yield rows if col_count is None else [r[:col_count] for r in rows]
finally:
cursor.close()
Variable | Value |
---|---|
col_count | None |
cursor | <django.db.backends.postgresql.base.CursorDebugWrapper object at 0x7fb60c0b0b50> |
itersize | 100 |
rows | [(1813, 'ear', 'EAR', False, False, '', False, '', False, '', '', False, '', False, '11.1', None, '', None, 8, None, None, None, None, '', '', '', '', True, False, '', '', '0', 'EAR', None, 63490, None), (3684, 'moustache', 'MOUSTACHE', False, False, '', False, '', False, '', '', False, '', False, '11.1', None, '', None, 10, None, None, None, None, '', '', '', '', True, False, '', '', '0', '', None, 63520, None), (3342, 'lipstick', 'LIPSTICK', False, False, '', False, '', False, '', '', False, '', False, '11.1', '0', '', None, 10, None, 0, None, None, '', '', '', '', True, False, '', '', '0', 'LIPSTICK', None, 63540, None), (4271, 'pip', 'PIP', False, False, '', False, '', False, '', '', False, '', False, '11.1', '0', '', None, 10, None, 0, None, None, '', '', '', '', True, False, '', '', '0', 'PIP', None, 63550, None), (1987, 'exquisite', 'EXQUISITE', False, False, '', False, '', False, '', '', False, '', False, '11.1', '0', '', None, 10, None, 0, None, None, '', '', '', '', True, False, '', '', '0', '', None, 63560, None), (1783, 'Dublin', 'DUBLIN', False, False, '', False, '', False, '', '', False, '', False, '11.1', None, '7.1', None, 10, None, 0, None, None, '', '', '', '', True, False, '', '', '0', '', None, 63570, None), (4255, 'take-tablet1e', 'TAKE-TABLET', False, False, '', False, '', False, '', '', False, '', False, '11.1', None, '7.1', None, 10, None, None, None, None, '', '', '', '', True, False, '', 'take-table1a-DEL-VAR', '0', '', None, 63580, None), (4938, 'Schadenfreude', 'SCHADENFREUDE', False, False, '', False, '', False, '', '', False, '', False, '11.1', None, '7.1', None, 10, None, None, None, None, '', '', '', '', True, False, '', '', '0', '', None, 63590, None), (4824, 'rooster.TAS', 'ROOSTER.TAS', False, False, '', False, '', False, '', '', False, '', False, '11.1', None, '7.1', None, 10, None, 0, None, None, '', '', '', '', True, False, '', '', '0', '', None, 63600, None), (2221, 'flower1c', 'FLOWER', False, False, '', False, '', False, '', '', False, '', False, '11.1', '0.0', '', None, 5, None, 0, None, None, '', '', '', '', True, False, '', 'flower1a-VAR', '0', 'FLOWER', None, 63610, None), (1793, 'dummy1b', 'DUMMY', False, False, '', False, '', False, '', '', False, '', False, '11.1', '0', '', None, 11, None, 0, None, None, '', '', '', '', True, False, '', 'dummy1a-VAR', '0', 'DUMMY', None, 63620, None), (2103, 'few1a', 'FEW', False, False, '', False, '', False, '', '', False, '', False, '11.1', '0', '', None, 11, None, 0, None, None, '', '', '', '', True, False, '', '', '0', 'FEW', None, 63630, None), (3349, 'little1a', 'LITTLE', False, False, '', False, '', False, '', '', False, '', False, '11.1', '0', '', None, 11, None, 0, None, None, '', '', '', '', True, False, '', '', '0', 'LITTLE', None, 63640, None), (3350, 'little1b', 'LITTLE', False, False, '', False, '', False, '', '', False, '', False, '11.1', None, '', None, 11, None, None, None, None, '', '', '', '', True, False, '', 'little1a-VAR', '0', '', None, 63650, None), (5137, 'little-short1a', 'LITTLE-SHORT', False, False, '', False, '', False, … <trimmed 29047 bytes string> |
sentinel | [] |
/usr/local/lib/python3.8/site-packages/django/db/models/sql/compiler.py
, line 1606, in <lambda>
def cursor_iter(cursor, sentinel, col_count, itersize):
"""
Yield blocks of rows from a cursor and ensure the cursor is closed when
done.
"""
try:
for rows in iter((lambda: cursor.fetchmany(itersize)), sentinel):…
yield rows if col_count is None else [r[:col_count] for r in rows]
finally:
cursor.close()
Variable | Value |
---|---|
cursor | <django.db.backends.postgresql.base.CursorDebugWrapper object at 0x7fb60c0b0b50> |
itersize | 100 |
/usr/local/lib/python3.8/site-packages/django/db/utils.py
, line 97, in inner
raise dj_exc_value.with_traceback(traceback) from exc_value
def __call__(self, func):
# Note that we are intentionally not using @wraps here for performance
# reasons. Refs #21109.
def inner(*args, **kwargs):
with self:
return func(*args, **kwargs)…
return inner
def load_backend(backend_name):
"""
Return a database backend's "base" module given a fully qualified database
Variable | Value |
---|---|
args | (100,) |
func | <built-in method fetchmany of psycopg2.extensions.cursor object at 0x7fb60c019d60> |
kwargs | {} |
self | <django.db.utils.DatabaseErrorWrapper object at 0x7fb60c290580> |
/usr/local/lib/python3.8/site-packages/django/db/utils.py
, line 90, in __exit__
db_exc_type = getattr(self.wrapper.Database, dj_exc_type.__name__)
if issubclass(exc_type, db_exc_type):
dj_exc_value = dj_exc_type(*exc_value.args)
# Only set the 'errors_occurred' flag for errors that may make
# the connection unusable.
if dj_exc_type not in (DataError, IntegrityError):
self.wrapper.errors_occurred = True
raise dj_exc_value.with_traceback(traceback) from exc_value…
def __call__(self, func):
# Note that we are intentionally not using @wraps here for performance
# reasons. Refs #21109.
def inner(*args, **kwargs):
with self:
Variable | Value |
---|---|
db_exc_type | <class 'psycopg2.InterfaceError'> |
dj_exc_type | <class 'django.db.utils.InterfaceError'> |
dj_exc_value | InterfaceError('cursor already closed') |
exc_type | <class 'psycopg2.InterfaceError'> |
exc_value | InterfaceError('cursor already closed') |
self | <django.db.utils.DatabaseErrorWrapper object at 0x7fb60c290580> |
traceback | <traceback object at 0x7fb60bf69c80> |
/usr/local/lib/python3.8/site-packages/django/db/utils.py
, line 97, in inner
raise dj_exc_value.with_traceback(traceback) from exc_value
def __call__(self, func):
# Note that we are intentionally not using @wraps here for performance
# reasons. Refs #21109.
def inner(*args, **kwargs):
with self:
return func(*args, **kwargs)…
return inner
def load_backend(backend_name):
"""
Return a database backend's "base" module given a fully qualified database
Variable | Value |
---|---|
args | (100,) |
func | <built-in method fetchmany of psycopg2.extensions.cursor object at 0x7fb60c019d60> |
kwargs | {} |
self | <django.db.utils.DatabaseErrorWrapper object at 0x7fb60c290580> |
AnonymousUser
Variable | Value |
---|---|
lastmatch | 'gold-1' |
No POST data
No FILES data
No cookie data
Variable | Value |
---|---|
HTTP_ACCEPT | '*/*' |
HTTP_ACCEPT_ENCODING | 'gzip' |
HTTP_HOST | 'auslan.org.au' |
HTTP_REFERER | 'http://auslan.org.au/dictionary/gloss/God1a.html?lastmatch=gold-1' |
HTTP_USER_AGENT | 'claudebot' |
HTTP_X_FORWARDED_FOR | '35.172.193.238' |
HTTP_X_FORWARDED_HOST | 'auslan.org.au' |
HTTP_X_FORWARDED_PROTO | 'https' |
PATH_INFO | '/dictionary/gloss/God1a.html' |
QUERY_STRING | 'lastmatch=gold-1' |
RAW_URI | '/dictionary/gloss/God1a.html?lastmatch=gold-1' |
REMOTE_ADDR | '172.17.0.1' |
REMOTE_PORT | '43788' |
REQUEST_METHOD | 'GET' |
SCRIPT_NAME | '' |
SERVER_NAME | '0.0.0.0' |
SERVER_PORT | '8000' |
SERVER_PROTOCOL | 'HTTP/1.1' |
SERVER_SOFTWARE | 'gunicorn/20.1.0' |
gunicorn.socket | <socket.socket fd=9, family=AddressFamily.AF_INET, type=SocketKind.SOCK_STREAM, proto=0, laddr=('172.17.0.3', 8000), raddr=('172.17.0.1', 43788)> |
wsgi.errors | <gunicorn.http.wsgi.WSGIErrorsWrapper object at 0x7fb60bf3eca0> |
wsgi.file_wrapper | <class 'gunicorn.http.wsgi.FileWrapper'> |
wsgi.input | <gunicorn.http.body.Body object at 0x7fb60bf3e220> |
wsgi.input_terminated | True |
wsgi.multiprocess | True |
wsgi.multithread | False |
wsgi.run_once | False |
wsgi.url_scheme | 'http' |
wsgi.version | (1, 0) |
signbank.settings.production
Setting | Value |
---|---|
ABSOLUTE_URL_OVERRIDES | {} |
ACCOUNT_ACTIVATION_DAYS | 7 |
ACCOUNT_AUTHENTICATION_METHOD | 'email' |
ACCOUNT_EMAIL_REQUIRED | True |
ACCOUNT_SIGNUP_FORM_CLASS | 'signbank.models.RegistrationForm' |
ACCOUNT_USERNAME_REQUIRED | False |
ADMINS | (('Steve Cassidy', 'steve.cassidy@mq.edu.au'),) |
ADMIN_EMAIL | 'webmaster@auslan.org.au' |
ADMIN_RESULT_FIELDS | ['sn', 'idgloss', 'annotation_idgloss', 'morph'] |
ALLOWED_HOSTS | ['auslan.org.au', 'www.auslan.org.au'] |
ALLOWED_TAGS | ['', 'b92:directional', 'b92:regional', 'corpus:attested', 'iconicity:obscure', 'iconicity:opaque', 'iconicity:translucent', 'iconicity:transparent', 'lexis:battinson', 'lexis:classifier', 'lexis:crude', 'lexis:doubtlex', 'lexis:fingerspell', 'lexis:gensign', 'lexis:marginal', 'lexis:obsolete', 'lexis:proper name', 'lexis:regional', 'lexis:restricted lexeme', 'lexis:signed english', 'lexis:signed english only', 'lexis:technical', 'lexis:varlex', 'morph:begin directional sign', 'morph:body locating', 'morph:directional sign', 'morph:end directional sign', 'morph:locational and directional', 'morph:orientating sign', 'phonology:alternating', 'phonology:dominant hand only', 'phonology:double handed', 'phonology:forearm rotation', 'phonology:handshape change', 'phonology:onehand', 'phonology:parallel', 'phonology:symmetrical', 'phonology:two handed', 'religion:anglican', 'religion:catholic', 'religion:catholic school', 'religion:jehovas witness', 'religion:other', 'religion:religion', 'semantic:animal', 'semantic:arithmetic', 'semantic:arts', 'semantic:bodypart', 'semantic:car', 'semantic:city', 'semantic:clothing', 'semantic:color', 'semantic:cooking', 'semantic:day', 'semantic:deaf', 'semantic:drink', 'semantic:education', 'semantic:family', 'semantic:feel', 'semantic:food', 'semantic:furniture', 'semantic:government', 'semantic:groom', 'semantic:health', 'semantic:judge', 'semantic:language act', 'semantic:law', 'semantic:material', 'semantic:metalg', 'semantic:mind', 'semantic:money', 'semantic:nature', 'semantic:number', 'semantic:order', 'semantic:people', 'semantic:physical act', 'semantic:quality', 'semantic:quantity', 'semantic:question', 'semantic:recreation', 'semantic:rooms', 'semantic:salutation', 'semantic:sensing', 'semantic:sexuality', 'semantic:shapes', 'semantic:shopping', 'semantic:sport', 'semantic:telecommunications', 'semantic:time', 'semantic:travel', 'semantic:utensil', 'semantic:weather', 'semantic:work', 'school:state school', 'workflow:needs video', 'workflow:redo video', 'workflow:problematic'] |
ALLOW_REGISTRATION | True |
ALWAYS_REQUIRE_LOGIN | False |
ANON_SAFE_SEARCH | True |
ANON_TAG_SEARCH | True |
ANYMAIL | {'MAILGUN_API_KEY': '********************', 'MAILGUN_SENDER_DOMAIN': 'auslan.org.au'} |
APPEND_SLASH | True |
ATTACHMENT_LOCATION | 'attachments' |
AUSLAN_STATIC_PREFIX | '/static/' |
AUTHENTICATION_BACKENDS | ('django.contrib.auth.backends.ModelBackend', 'allauth.account.auth_backends.AuthenticationBackend') |
AUTH_PASSWORD_VALIDATORS | '********************' |
AUTH_USER_MODEL | 'auth.User' |
BASE_DIR | '/usr/src/app/signbank' |
CACHES | {'default': {'BACKEND': 'django.core.cache.backends.locmem.LocMemCache'}} |
CACHE_MIDDLEWARE_ALIAS | 'default' |
CACHE_MIDDLEWARE_KEY_PREFIX | '********************' |
CACHE_MIDDLEWARE_SECONDS | 600 |
COLOUR_SIGNS | False |
COMMENT_VIDEO_LOCATION | 'comments' |
COUNTRY_NAME | 'Australia' |
COUNTRY_SIGNS | False |
CSRF_COOKIE_AGE | 31449600 |
CSRF_COOKIE_DOMAIN | None |
CSRF_COOKIE_HTTPONLY | False |
CSRF_COOKIE_NAME | 'csrftoken' |
CSRF_COOKIE_PATH | '/' |
CSRF_COOKIE_SAMESITE | 'Lax' |
CSRF_COOKIE_SECURE | False |
CSRF_FAILURE_VIEW | 'django.views.csrf.csrf_failure' |
CSRF_HEADER_NAME | 'HTTP_X_CSRFTOKEN' |
CSRF_TRUSTED_ORIGINS | [] |
CSRF_USE_SESSIONS | False |
DATABASES | {'default': {'ATOMIC_REQUESTS': False, 'AUTOCOMMIT': True, 'CONN_MAX_AGE': 0, 'ENGINE': 'django.db.backends.postgresql', 'HOST': '172.17.0.1', 'NAME': 'auslan', 'OPTIONS': {}, 'PASSWORD': '********************', 'PORT': '5432', 'TEST': {'CHARSET': None, 'COLLATION': None, 'MIGRATE': True, 'MIRROR': None, 'NAME': None}, 'TIME_ZONE': None, 'USER': 'postgres'}} |
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 | True |
DEBUG_PROPAGATE_EXCEPTIONS | False |
DECIMAL_SEPARATOR | '.' |
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 | 'river.smith@monash.edu' |
DEFAULT_HASHING_ALGORITHM | 'sha256' |
DEFAULT_INDEX_TABLESPACE | '' |
DEFAULT_TABLESPACE | '' |
DEFINITION_FIELDS | ['auslan', 'general', 'noun', 'verb', 'interact', 'deictic', 'modifier', 'question', 'augment', 'note'] |
DEFINITION_ROLE_CHOICES | (('auslan', 'Definition in Auslan'), ('general', 'General Definition'), ('noun', 'As a Noun'), ('verb', 'As a Verb or Adjective'), ('deictic', 'As a Pointing Sign'), ('interact', 'Interactive'), ('modifier', 'As Modifier'), ('question', 'As Question'), ('popexplain', 'Popular Explanation'), ('augment', 'Augmented Meaning'), ('note', 'Note'), ('privatenote', 'Private Note'), ('B92 sn', 'Sign Number in Brien 92')) |
DICTIONARY_FILTER_TAGS | [('semantic:health', 'Health'), ('semantic:education', 'Education'), ('semantic:animal', 'Animal'), ('semantic:arithmetic', 'Arithmetic'), ('semantic:arts', 'Arts'), ('semantic:bodypart', 'Body Part'), ('semantic:car', 'Car'), ('semantic:city', 'City'), ('semantic:clothing', 'Clothing'), ('semantic:color', 'Color'), ('semantic:cooking', 'Cooking'), ('semantic:day', 'Day'), ('semantic:deaf', 'Deaf'), ('semantic:drink', 'Drink'), ('semantic:family', 'Family'), ('semantic:feel', 'Feel'), ('semantic:food', 'Food'), ('semantic:furniture', 'Furniture'), ('semantic:government', 'Government'), ('semantic:groom', 'Groom'), ('semantic:judge', 'Judge'), ('semantic:language act', 'Language act'), ('semantic:law', 'Law'), ('semantic:material', 'Material'), ('semantic:metalg', 'Metalg'), ('semantic:mind', 'Mind'), ('semantic:money', 'Money'), ('semantic:nature', 'Nature'), ('semantic:number', 'Number'), ('semantic:order', 'Order'), ('semantic:people', 'People'), ('semantic:physical act', 'Physical act'), ('semantic:quality', 'Quality'), ('semantic:quantity', 'Quantity'), ('semantic:question', 'Question'), ('semantic:recreation', 'Recreation'), ('semantic:rooms', 'Rooms'), ('semantic:salutation', 'Salutation'), ('semantic:sensing', 'Sensing'), ('semantic:sexuality', 'Sexuality'), ('semantic:shapes', 'Shapes'), ('semantic:shopping', 'Shopping'), ('semantic:sport', 'Sport'), ('semantic:telecommunications', 'Telecommunications'), ('semantic:time', 'Time'), ('semantic:travel', 'Travel'), ('semantic:utensil', 'Utensil'), ('semantic:weather', 'Weather'), ('semantic:work', 'Work')] |
DISALLOWED_USER_AGENTS | [] |
DO_LOGGING | False |
EMAIL_BACKEND | 'anymail.backends.mailgun.EmailBackend' |
EMAIL_HOST | None |
EMAIL_HOST_PASSWORD | '********************' |
EMAIL_HOST_USER | None |
EMAIL_PORT | 25 |
EMAIL_SSL_CERTFILE | None |
EMAIL_SSL_KEYFILE | '********************' |
EMAIL_SUBJECT_PREFIX | '[Django] ' |
EMAIL_TIMEOUT | None |
EMAIL_USE_LOCALTIME | False |
EMAIL_USE_SSL | False |
EMAIL_USE_TLS | False |
FFMPEG_OPTIONS | ['-vcodec', 'libx264', '-an', '-vpre', 'hq', '-r', '30000/1001', '-b', '200k', '-bt', '240k'] |
FFMPEG_PROGRAM | '/usr/bin/ffmpeg' |
FFMPEG_TIMEOUT | '60' |
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 |
FINGER_SIGNS | True |
FIRST_DAY_OF_WEEK | 0 |
FIXTURE_DIRS | [] |
FORCE_LOWERCASE_TAGS | True |
FORCE_SCRIPT_NAME | None |
FORMAT_MODULE_PATH | None |
FORM_RENDERER | 'django.forms.renderers.DjangoTemplates' |
GLOSS_VIDEO_DIRECTORY | 'mp4video' |
GOOGLE_ANALYTICS_TRACKING_CODE | 'UA-3928964-1' |
IGNORABLE_404_URLS | [] |
INSTALLED_APPS | ('django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.sites', 'django.contrib.messages', 'django.contrib.admin', 'django.contrib.admindocs', 'django.contrib.staticfiles', 'django.contrib.sitemaps', 'bootstrap3', 'django_summernote', 'dictionary', 'feedback', 'video', 'signbank_theme_auslan', 'pages', 'signbank', 'reversion', 'tagging', 'allauth', 'allauth.account', 'allauth.socialaccount') |
INTERNAL_IPS | ('127.0.0.1',) |
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 |
LANGUAGE_NAME | 'Auslan' |
LOCALE_PATHS | [] |
LOGGING | {'disable_existing_loggers': False, 'filters': {'require_debug_false': {'()': 'django.utils.log.RequireDebugFalse'}}, 'handlers': {'mail_admins': {'class': 'django.utils.log.AdminEmailHandler', 'filters': ['require_debug_false'], 'level': 'ERROR'}}, 'loggers': {'django.request': {'handlers': ['mail_admins'], 'level': 'ERROR', 'propagate': True}}, 'version': 1} |
LOGGING_CONFIG | 'logging.config.dictConfig' |
LOGIN_REDIRECT_URL | '/feedback/' |
LOGIN_URL | '/accounts/login/' |
LOGOUT_REDIRECT_URL | None |
LOG_FILENAME | 'debug.log' |
MANAGERS | (('Steve Cassidy', 'steve.cassidy@mq.edu.au'),) |
MEDIA_MOBILE_URL | '/media/' |
MEDIA_ROOT | '' |
MEDIA_URL | 'https://object-store.rc.nectar.org.au/v1/AUTH_92e2f9b70316412697cddc6f3ac0ee4e/staticauslanorgau/' |
MESSAGE_STORAGE | 'django.contrib.messages.storage.fallback.FallbackStorage' |
MIDDLEWARE | ('django.middleware.security.SecurityMiddleware', 'whitenoise.middleware.WhiteNoiseMiddleware', 'django.middleware.common.CommonMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware', 'reversion.middleware.RevisionMiddleware', 'pages.middleware.PageFallbackMiddleware') |
MIGRATION_MODULES | {} |
MOBILE_CSS | 'bootstrap_css/mobile-extra.css' |
MONTH_DAY_FORMAT | 'F j' |
NUMBER_GROUPING | 0 |
NUMBER_SIGNS | True |
PAGES_VIDEO_LOCATION | 'pages' |
PASSWORD_HASHERS | '********************' |
PASSWORD_RESET_TIMEOUT | '********************' |
PASSWORD_RESET_TIMEOUT_DAYS | '********************' |
PLACE_SIGNS | False |
PREPEND_WWW | False |
PRIMARY_CSS | 'bootstrap_css/auslan.css' |
PROJECT_DIR | '/usr/src/app' |
QUICK_UPDATE_GLOSS_FIELDS | ['language', 'dialect'] |
ROOT_URLCONF | 'signbank.urls' |
SECRET_KEY | '********************' |
SECURE_BROWSER_XSS_FILTER | False |
SECURE_CONTENT_TYPE_NOSNIFF | True |
SECURE_HSTS_INCLUDE_SUBDOMAINS | False |
SECURE_HSTS_PRELOAD | False |
SECURE_HSTS_SECONDS | 0 |
SECURE_PROXY_SSL_HEADER | None |
SECURE_REDIRECT_EXEMPT | [] |
SECURE_REFERRER_POLICY | 'same-origin' |
SECURE_SSL_HOST | None |
SECURE_SSL_REDIRECT | False |
SERVER_EMAIL | 'river.smith@monash.edu' |
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 | False |
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 | 'signbank.settings.production' |
SHORT_DATETIME_FORMAT | 'm/d/Y P' |
SHORT_DATE_FORMAT | 'm/d/Y' |
SHOW_FREQUENCY | False |
SHOW_NUMBERSIGNS | True |
SHOW_TRADITIONAL | True |
SIGNING_BACKEND | 'django.core.signing.TimestampSigner' |
SIGN_NAVIGATION | True |
SILENCED_SYSTEM_CHECKS | [] |
SITE_ID | 1 |
SITE_TITLE | 'Signbank' |
SOCIAL_NETWORK_FACEBOOK_PAGE | None |
SOCIAL_NETWORK_FACEBOOK_SHARE | True |
SOCIAL_NETWORK_SHARE_LINKS | True |
SOCIAL_NETWORK_TWITTER_PAGE | None |
SOCIAL_NETWORK_TWITTER_SHARE | True |
STATICFILES_DIRS | () |
STATICFILES_FINDERS | ('django.contrib.staticfiles.finders.FileSystemFinder', 'django.contrib.staticfiles.finders.AppDirectoriesFinder') |
STATICFILES_STORAGE | 'whitenoise.storage.CompressedManifestStaticFilesStorage' |
STATIC_ROOT | '/usr/src/app/signbank/staticfiles' |
STATIC_URL | '/static/' |
SUMMERNOTE_CONFIG | {'attachment_filesize_limit': 104857600, 'base_css': ('//stackpath.bootstrapcdn.com/bootstrap/3.4.1/css/bootstrap.min.css',), 'base_js': ('//code.jquery.com/jquery-3.3.1.min.js', '//stackpath.bootstrapcdn.com/bootstrap/3.4.1/js/bootstrap.min.js'), 'default_css': ('summernote/summernote.css', 'summernote/django_summernote.css'), 'default_js': ('summernote/jquery.ui.widget.js', 'summernote/jquery.iframe-transport.js', 'summernote/jquery.fileupload.js', 'summernote/summernote.min.js', 'summernote/ResizeSensor.js'), 'js': ('/static/js/summernote-file.js',), 'summernote': {'height': 480, 'lang': None, 'toolbar': [['style', ['style']], ['font', ['bold', 'underline', 'clear']], ['fontname', ['fontname']], ['color', ['color']], ['para', ['ul', 'ol', 'paragraph']], ['table', ['table']], ['insert', ['link', 'picture', 'video', 'file']], ['view', ['fullscreen', 'codeview', 'help']]], 'width': 720}} |
TEMPLATES | [{'APP_DIRS': True, 'BACKEND': 'django.template.backends.django.DjangoTemplates', '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', 'django.template.context_processors.static', 'dictionary.views.dictionary_context_processor', 'pages.context_processors.menu', 'pages.context_processors.configuration']}}] |
TEMPLATE_DEBUG | True |
TEST_NON_SERIALIZED_APPS | [] |
TEST_RUNNER | 'django.test.runner.DiscoverRunner' |
THOUSAND_SEPARATOR | ',' |
TIME_FORMAT | 'P' |
TIME_INPUT_FORMATS | ['%H:%M:%S', '%H:%M:%S.%f', '%H:%M'] |
TIME_ZONE | 'Australia/Sydney' |
UPLOAD_ROOT | '/usr/src/app/test-mediaupload/' |
UPLOAD_URL | '/media/upload/' |
USE_I18N | True |
USE_L10N | True |
USE_THOUSAND_SEPARATOR | False |
USE_TZ | True |
USE_X_FORWARDED_HOST | False |
USE_X_FORWARDED_PORT | False |
VIDEO_ASPECT_RATIO | 0.75 |
VIDEO_UPLOAD_LOCATION | 'upload' |
WSGI_APPLICATION | 'signbank.wsgi.application' |
X_FRAME_OPTIONS | 'SAMEORIGIN' |
YEAR_MONTH_FORMAT | 'F Y' |
You're seeing this error because you have DEBUG = True
in your
Django settings file. Change that to False
, and Django will
display a standard page generated by the handler for this status code.