Traceback Switch to copy-and-paste view
-
/.venv/lib/python3.12/site-packages/django/db/models/fields/__init__.py, line 2128, in get_prep_valuereturn validators_
def get_prep_value(self, value):
value = super().get_prep_value(value)
if value is None:
return None
try:
return int(value) ^^^^^^^^^^…
except (TypeError, ValueError) as e:
raise e.__class__(
"Field '%s' expected a number but got %r." % (self.name, value),
) from e
def get_db_prep_value(self, value, connection, prepared=False):
Local vars
Variable Value __class__ <class 'django.db.models.fields.IntegerField'>
self <django.db.models.fields.BigAutoField: id>
value '92d9a074-3a27-463a-9255-b8ba671df802'
The above exception (invalid literal for int() with base 10: '92d9a074-3a27-463a-9255-b8ba671df802') was the direct cause of the following exception:
-
/.venv/lib/python3.12/site-packages/django/core/handlers/exception.py, line 55, in innerreturn 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
Local vars
Variable Value exc ValueError("Field 'id' expected a number but got '92d9a074-3a27-463a-9255-b8ba671df802'.")get_response <bound method BaseHandler._get_response of <django.core.handlers.wsgi.WSGIHandler object at 0x7fdc0f3b34a0>>
request <WSGIRequest: POST '/operator/g/purchase/'>
-
/.venv/lib/python3.12/site-packages/django/core/handlers/base.py, line 197, in _get_responseif response is None:
wrapped_callback = self.make_view_atomic(callback)
# If it is an asynchronous view, run it in a subthread.
if 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).
Local vars
Variable Value callback <function View.as_view.<locals>.view at 0x7fdc0af02200>
callback_args ()
callback_kwargs {'action': 'purchase'}middleware_method <function CsrfViewMiddleware.process_view at 0x7fdc0abb5760>
request <WSGIRequest: POST '/operator/g/purchase/'>
response None
self <django.core.handlers.wsgi.WSGIHandler object at 0x7fdc0f3b34a0>
wrapped_callback <function View.as_view.<locals>.view at 0x7fdc0a70db20>
-
/.venv/lib/python3.12/site-packages/sentry_sdk/integrations/django/views.py, line 94, in sentry_wrapped_callbacksentry_scope.profile.update_active_thread_id()
with sentry_sdk.start_span(
op=OP.VIEW_RENDER,
name=request.resolver_match.view_name,
origin=DjangoIntegration.origin,
):
return callback(request, *args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^…
return sentry_wrapped_callback
Local vars
Variable Value DjangoIntegration <class 'sentry_sdk.integrations.django.DjangoIntegration'>
args ()
callback <function View.as_view.<locals>.view at 0x7fdc0af02200>
current_scope <Scope id=0x7fdc0abac9a0 name=None type=ScopeType.CURRENT>
kwargs {'action': 'purchase'}request <WSGIRequest: POST '/operator/g/purchase/'>
sentry_scope <Scope id=0x7fdc0abad030 name=wsgi type=ScopeType.ISOLATION>
-
/.venv/lib/python3.12/site-packages/django/views/decorators/csrf.py, line 65, in _view_wrapperasync def _view_wrapper(request, *args, **kwargs):
return await view_func(request, *args, **kwargs)
else:
def _view_wrapper(request, *args, **kwargs):
return view_func(request, *args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^…
_view_wrapper.csrf_exempt = True
return wraps(view_func)(_view_wrapper)
Local vars
Variable Value args ()
kwargs {'action': 'purchase'}request <WSGIRequest: POST '/operator/g/purchase/'>
view_func <function View.as_view.<locals>.view at 0x7fdc0c0ea0c0>
-
/.venv/lib/python3.12/site-packages/django/views/generic/base.py, line 105, in viewself = cls(**initkwargs)
self.setup(request, *args, **kwargs)
if not hasattr(self, "request"):
raise AttributeError(
"%s instance has no 'request' attribute. Did you override "
"setup() and forget to call super()?" % cls.__name__
)
return self.dispatch(request, *args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^…
view.view_class = cls
view.view_initkwargs = initkwargs
# __name__ and __qualname__ are intentionally left unchanged as
# view_class should be used to robustly determine the name of the view
Local vars
Variable Value args ()
cls <class 'users.api.DiaFlowApiView'>
initkwargs {}kwargs {'action': 'purchase'}request <WSGIRequest: POST '/operator/g/purchase/'>
self <users.api.DiaFlowApiView object at 0x7fdc093b7b60>
-
/.venv/lib/python3.12/site-packages/rest_framework/views.py, line 515, in dispatchself.http_method_not_allowed)
else:
handler = self.http_method_not_allowed
response = handler(request, *args, **kwargs)
except Exception as exc:
response = self.handle_exception(exc) ^^^^^^^^^^^^^^^^^^^^^^^^^^…
self.response = self.finalize_response(request, response, *args, **kwargs)
return self.response
def options(self, request, *args, **kwargs):
"""
Local vars
Variable Value args ()
handler <bound method DiaFlowApiView.post of <users.api.DiaFlowApiView object at 0x7fdc093b7b60>>
kwargs {'action': 'purchase'}request <rest_framework.request.Request: POST '/operator/g/purchase/'>
self <users.api.DiaFlowApiView object at 0x7fdc093b7b60>
-
/.venv/lib/python3.12/site-packages/rest_framework/views.py, line 475, in handle_exceptionexception_handler = self.get_exception_handler()
context = self.get_exception_handler_context()
response = exception_handler(exc, context)
if response is None:
self.raise_uncaught_exception(exc) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^…
response.exception = True
return response
def raise_uncaught_exception(self, exc):
if settings.DEBUG:
Local vars
Variable Value context {'args': (), 'kwargs': {'action': 'purchase'}, 'request': <rest_framework.request.Request: POST '/operator/g/purchase/'>, 'view': <users.api.DiaFlowApiView object at 0x7fdc093b7b60>}exc ValueError("Field 'id' expected a number but got '92d9a074-3a27-463a-9255-b8ba671df802'.")exception_handler <function exception_handler at 0x7fdc0bf1c360>
response None
self <users.api.DiaFlowApiView object at 0x7fdc093b7b60>
-
/.venv/lib/python3.12/site-packages/rest_framework/views.py, line 486, in raise_uncaught_exceptiondef raise_uncaught_exception(self, exc):
if settings.DEBUG:
request = self.request
renderer_format = getattr(request.accepted_renderer, 'format')
use_plaintext_traceback = renderer_format not in ('html', 'api', 'admin')request.force_plaintext_errors(use_plaintext_traceback)
raise exc ^^^^^^^^^…
# Note: Views are made CSRF exempt from within `as_view` as to prevent
# accidental removal of this exemption in cases where `dispatch` needs to
# be overridden.
def dispatch(self, request, *args, **kwargs):
"""
Local vars
Variable Value exc ValueError("Field 'id' expected a number but got '92d9a074-3a27-463a-9255-b8ba671df802'.")renderer_format 'json'
request <rest_framework.request.Request: POST '/operator/g/purchase/'>
self <users.api.DiaFlowApiView object at 0x7fdc093b7b60>
use_plaintext_traceback True
-
/.venv/lib/python3.12/site-packages/rest_framework/views.py, line 512, in dispatch# Get the appropriate handler method
if request.method.lower() in self.http_method_names:
handler = getattr(self, request.method.lower(),
self.http_method_not_allowed)
else:
handler = self.http_method_not_allowed
response = handler(request, *args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^…
except Exception as exc:
response = self.handle_exception(exc)
self.response = self.finalize_response(request, response, *args, **kwargs)
return self.response
Local vars
Variable Value args ()
handler <bound method DiaFlowApiView.post of <users.api.DiaFlowApiView object at 0x7fdc093b7b60>>
kwargs {'action': 'purchase'}request <rest_framework.request.Request: POST '/operator/g/purchase/'>
self <users.api.DiaFlowApiView object at 0x7fdc093b7b60>
-
/app/users/api.py, line 390, in postif action == DiaflowActions.CREATE:
return DiaflowCreateAddMoneySerializer
return DiaflowAddMoneySerializer
def post(self, request, *args, **kwargs):
action = kwargs.get("action")
result = process_diaflow_action(…
action=action,
data=request.data,
processor=request.processor,
)
return Response(result, status=status.HTTP_201_CREATED)
Local vars
Variable Value action 'purchase'
args ()
kwargs {'action': 'purchase'}request <rest_framework.request.Request: POST '/operator/g/purchase/'>
self <users.api.DiaFlowApiView object at 0x7fdc093b7b60>
-
/app/users/api.py, line 296, in process_diaflow_actionserializer.is_valid(raise_exception=True)
payload = serializer.validated_data
operator_id = payload["operator_id"]
operator = get_object_or_404(
Operator, ewallet_user_id=operator_id, account_status="active",
)
operator_game = get_object_or_404(…
OperatorGame, id=payload["operator_game_id"], api_user=operator, processor=processor,
)
customer = None
if action == DiaflowActions.CREATE:
action_val = EapiTransaction.Action.CREATE_ADD
Local vars
Variable Value action 'purchase'
data {'amount': 10, 'operator_game_id': '92d9a074-3a27-463a-9255-b8ba671df802', 'operator_id': '73b83a81-0293-45ae-99ba-bdd7f3555aa4', 'operator_wallet_id': '900100000000', 'payment_provider_id': 'paypal', 'player_game_user_id': '456', 'player_wallet_id': '123'}operator <Operator: 167299>
operator_id UUID('73b83a81-0293-45ae-99ba-bdd7f3555aa4')payload {'amount': Decimal('10.00'), 'operator_game_id': '92d9a074-3a27-463a-9255-b8ba671df802', 'operator_id': UUID('73b83a81-0293-45ae-99ba-bdd7f3555aa4'), 'operator_wallet_id': '900100000000', 'payment_provider_id': 'paypal', 'player_game_user_id': '456', 'player_wallet_id': '123'}processor <Processor: Leonardo>
serializer DiaflowAddMoneySerializer(data={'operator_id': '73b83a81-0293-45ae-99ba-bdd7f3555aa4', 'operator_game_id': '92d9a074-3a27-463a-9255-b8ba671df802', 'operator_wallet_id': '900100000000', 'player_game_user_id': '456', 'player_wallet_id': '123', 'payment_provider_id': 'paypal', 'amount': 10}): operator_id = UUIDField() amount = DecimalField(decimal_places=2, max_digits=18, min_value=Decimal('0.01')) payment_provider_id = CharField() operator_wallet_id = CharField() player_wallet_id = CharField() operator_game_id = CharField() player_game_user_id = CharField()serializer_class <class 'users.serializers.DiaflowAddMoneySerializer'>
-
/.venv/lib/python3.12/site-packages/django/shortcuts.py, line 90, in get_object_or_404klass.__name__ if isinstance(klass, type) else klass.__class__.__name__
)
raise ValueError(
"First argument to get_object_or_404() must be a Model, Manager, "
"or QuerySet, not '%s'." % klass__name
)
try:
return queryset.get(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^…
except queryset.model.DoesNotExist:
raise Http404(
"No %s matches the given query." % queryset.model._meta.object_name
)
Local vars
Variable Value args ()
klass <class 'games.models.merchant_game.OperatorGame'>
kwargs {'api_user': <Operator: 167299>, 'id': '92d9a074-3a27-463a-9255-b8ba671df802', 'processor': <Processor: Leonardo>}queryset <QuerySet [<OperatorGame: Dragon City>, <OperatorGame: Fortune 2 go>, <OperatorGame: Golden Dragon>, <OperatorGame: Magic City>, <OperatorGame: River Sweeps>, <OperatorGame: Ultra Panda>]>
-
/.venv/lib/python3.12/site-packages/django/db/models/query.py, line 619, in getkeyword arguments.
"""
if self.query.combinator and (args or kwargs):
raise NotSupportedError(
"Calling QuerySet.get(...) with filters after %s() is not "
"supported." % self.query.combinator
)
clone = self._chain() if self.query.combinator else self.filter(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^…
if self.query.can_filter() and not self.query.distinct_fields:
clone = clone.order_by()
limit = None
if (
not clone.query.select_for_update
or connections[clone.db].features.supports_select_for_update_with_limit
Local vars
Variable Value args ()
kwargs {'api_user': <Operator: 167299>, 'id': '92d9a074-3a27-463a-9255-b8ba671df802', 'processor': <Processor: Leonardo>}self <QuerySet [<OperatorGame: Dragon City>, <OperatorGame: Fortune 2 go>, <OperatorGame: Golden Dragon>, <OperatorGame: Magic City>, <OperatorGame: River Sweeps>, <OperatorGame: Ultra Panda>]>
-
/.venv/lib/python3.12/site-packages/django/db/models/query.py, line 1493, in filterdef filter(self, *args, **kwargs):
"""
Return a new QuerySet instance with the args ANDed to the existing
set.
"""
self._not_support_combined_queries("filter")
return self._filter_or_exclude(False, args, kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^…
def exclude(self, *args, **kwargs):
"""
Return a new QuerySet instance with NOT (args) ANDed to the existing
set.
"""
Local vars
Variable Value args ()
kwargs {'api_user': <Operator: 167299>, 'id': '92d9a074-3a27-463a-9255-b8ba671df802', 'processor': <Processor: Leonardo>}self <QuerySet [<OperatorGame: Dragon City>, <OperatorGame: Fortune 2 go>, <OperatorGame: Golden Dragon>, <OperatorGame: Magic City>, <OperatorGame: River Sweeps>, <OperatorGame: Ultra Panda>]>
-
/.venv/lib/python3.12/site-packages/django/db/models/query.py, line 1511, in _filter_or_excludeif (args or kwargs) and self.query.is_sliced:
raise TypeError("Cannot filter a query once a slice has been taken.")clone = self._chain()
if self._defer_next_filter:
self._defer_next_filter = False
clone._deferred_filter = negate, args, kwargs
else:
clone._filter_or_exclude_inplace(negate, args, kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^…
return clone
def _filter_or_exclude_inplace(self, negate, args, kwargs):
if negate:
self._query.add_q(~Q(*args, **kwargs))
else:
Local vars
Variable Value args ()
clone <QuerySet [<OperatorGame: Dragon City>, <OperatorGame: Fortune 2 go>, <OperatorGame: Golden Dragon>, <OperatorGame: Magic City>, <OperatorGame: River Sweeps>, <OperatorGame: Ultra Panda>]>
kwargs {'api_user': <Operator: 167299>, 'id': '92d9a074-3a27-463a-9255-b8ba671df802', 'processor': <Processor: Leonardo>}negate False
self <QuerySet [<OperatorGame: Dragon City>, <OperatorGame: Fortune 2 go>, <OperatorGame: Golden Dragon>, <OperatorGame: Magic City>, <OperatorGame: River Sweeps>, <OperatorGame: Ultra Panda>]>
-
/.venv/lib/python3.12/site-packages/django/db/models/query.py, line 1518, in _filter_or_exclude_inplaceclone._filter_or_exclude_inplace(negate, args, kwargs)
return clone
def _filter_or_exclude_inplace(self, negate, args, kwargs):
if negate:
self._query.add_q(~Q(*args, **kwargs))
else:
self._query.add_q(Q(*args, **kwargs)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^…
def complex_filter(self, filter_obj):
"""
Return a new QuerySet instance with filter_obj added to the filters.
filter_obj can be a Q object or a dictionary of keyword lookup
Local vars
Variable Value args ()
kwargs {'api_user': <Operator: 167299>, 'id': '92d9a074-3a27-463a-9255-b8ba671df802', 'processor': <Processor: Leonardo>}negate False
self <QuerySet [<OperatorGame: Dragon City>, <OperatorGame: Fortune 2 go>, <OperatorGame: Golden Dragon>, <OperatorGame: Magic City>, <OperatorGame: River Sweeps>, <OperatorGame: Ultra Panda>]>
-
/.venv/lib/python3.12/site-packages/django/db/models/sql/query.py, line 1646, in add_qexisting_inner = {a for a in self.alias_map if self.alias_map[a].join_type == INNER
}
if reuse_all:
can_reuse = set(self.alias_map)
else:
can_reuse = self.used_aliases
clause, _ = self._add_q(q_object, can_reuse) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^…
if clause:
self.where.add(clause, AND)
self.demote_joins(existing_inner)
def build_where(self, filter_expr):
return self.build_filter(filter_expr, allow_joins=False)[0]
Local vars
Variable Value can_reuse {'eapi_operator_games'}existing_inner set()
q_object <Q: (AND: ('api_user', <Operator: 167299>), ('id', '92d9a074-3a27-463a-9255-b8ba671df802'), ('processor', <Processor: Leonardo>))>reuse_all False
self <django.db.models.sql.query.Query object at 0x7fdc0a6de060>
-
/.venv/lib/python3.12/site-packages/django/db/models/sql/query.py, line 1678, in _add_qcurrent_negated ^= q_object.negated
branch_negated = branch_negated or q_object.negated
target_clause = WhereNode(connector=connector, negated=q_object.negated)
joinpromoter = JoinPromoter(
q_object.connector, len(q_object.children), current_negated
)
for child in q_object.children:
child_clause, needed_inner = self.build_filter(…
child,
can_reuse=used_aliases,
branch_negated=branch_negated,
current_negated=current_negated,
allow_joins=allow_joins,
split_subq=split_subq,
Local vars
Variable Value allow_joins True
branch_negated False
check_filterable True
child ('id', '92d9a074-3a27-463a-9255-b8ba671df802')child_clause <WhereNode: (AND: RelatedExact(Col(eapi_operator_games, games.OperatorGame.api_user), UUID('73b83a81-0293-45ae-99ba-bdd7f3555aa4')))>connector 'AND'
current_negated False
joinpromoter JoinPromoter(connector='AND', num_children=3, negated=False)
needed_inner {'operators', 'eapi_operator_games'}q_object <Q: (AND: ('api_user', <Operator: 167299>), ('id', '92d9a074-3a27-463a-9255-b8ba671df802'), ('processor', <Processor: Leonardo>))>self <django.db.models.sql.query.Query object at 0x7fdc0a6de060>
split_subq True
summarize False
target_clause <WhereNode: (AND: RelatedExact(Col(eapi_operator_games, games.OperatorGame.api_user), UUID('73b83a81-0293-45ae-99ba-bdd7f3555aa4')))>update_join_types True
used_aliases {'eapi_operator_games'} -
/.venv/lib/python3.12/site-packages/django/db/models/sql/query.py, line 1588, in build_filterif len(targets) == 1:
col = self._get_col(targets[0], join_info.final_field, alias)
else:
col = ColPairs(alias, targets, join_info.targets, join_info.final_field)
else:
col = self._get_col(targets[0], join_info.final_field, alias)
condition = self.build_lookup(lookups, col, value) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^…
lookup_type = condition.lookup_name
clause = WhereNode([condition], connector=AND)
require_outer = (
lookup_type == "isnull" and condition.rhs is True and not current_negated
)
Local vars
Variable Value alias 'eapi_operator_games'
allow_joins True
allow_many True
arg 'id'
branch_negated False
can_reuse {'eapi_operator_games'}check_filterable True
col Col(eapi_operator_games, games.OperatorGame.id)
current_negated False
filter_expr ('id', '92d9a074-3a27-463a-9255-b8ba671df802')join_info JoinInfo(final_field=<django.db.models.fields.BigAutoField: id>, targets=(<django.db.models.fields.BigAutoField: id>,), opts=<Options for OperatorGame>, joins=['eapi_operator_games'], path=[], transform_function=<function Query.setup_joins.<locals>.final_transformer at 0x7fdc0938b2e0>)
join_list ['eapi_operator_games']
lookups []
opts <Options for OperatorGame>
parts ['id']
pre_joins {'eapi_operator_games': 1, 'operators': 0}reffed_expression False
self <django.db.models.sql.query.Query object at 0x7fdc0a6de060>
split_subq True
summarize False
targets (<django.db.models.fields.BigAutoField: id>,)
update_join_types True
used_joins {'eapi_operator_games'}value '92d9a074-3a27-463a-9255-b8ba671df802'
-
/.venv/lib/python3.12/site-packages/django/db/models/sql/query.py, line 1415, in build_lookup# and do an Exact lookup against it.
lhs = self.try_transform(lhs, lookup_name)
lookup_name = "exact"
lookup_class = lhs.get_lookup(lookup_name)
if not lookup_class:
return
lookup = lookup_class(lhs, rhs) ^^^^^^^^^^^^^^^^^^^^^^…
# Interpret '__exact=None' as the sql 'is NULL'; otherwise, reject all
# uses of None as a query value unless the lookup supports it.
if lookup.rhs is None and not lookup.can_use_none_as_rhs:
if lookup_name not in ("exact", "iexact"):raise ValueError("Cannot use None as a query value")return lhs.get_lookup("isnull")(lhs, True)
Local vars
Variable Value lhs Col(eapi_operator_games, games.OperatorGame.id)
lookup_class <class 'django.db.models.lookups.IntegerFieldExact'>
lookup_name 'exact'
lookups []
rhs '92d9a074-3a27-463a-9255-b8ba671df802'
self <django.db.models.sql.query.Query object at 0x7fdc0a6de060>
transforms []
-
/.venv/lib/python3.12/site-packages/django/db/models/lookups.py, line 38, in __init__class Lookup(Expression):
lookup_name = None
prepare_rhs = True
can_use_none_as_rhs = False
def __init__(self, lhs, rhs):
self.lhs, self.rhs = lhs, rhs
self.rhs = self.get_prep_lookup() ^^^^^^^^^^^^^^^^^^^^^^…
self.lhs = self.get_prep_lhs()
if hasattr(self.lhs, "get_bilateral_transforms"):
bilateral_transforms = self.lhs.get_bilateral_transforms()
else:
bilateral_transforms = []
if bilateral_transforms:
Local vars
Variable Value lhs Col(eapi_operator_games, games.OperatorGame.id)
rhs '92d9a074-3a27-463a-9255-b8ba671df802'
self IntegerFieldExact(Col(eapi_operator_games, games.OperatorGame.id), '92d9a074-3a27-463a-9255-b8ba671df802')
-
/.venv/lib/python3.12/site-packages/django/db/models/lookups.py, line 410, in get_prep_lookupraise ValueError(
f"The QuerySet value for the exact lookup must have {lhs_len} "f"selected fields (received {rhs_len})")
if not query.has_select_fields:
query.clear_select_clause()
query.add_fields(["pk"])
return super().get_prep_lookup() ^^^^^^^^^^^^^^^^^^^^^^^^^…
def as_sql(self, compiler, connection):
# Avoid comparison against direct rhs if lhs is a boolean value. That
# turns "boolfield__exact=True" into "WHERE boolean_field" instead of
# "WHERE boolean_field = True" when allowed.
if (
Local vars
Variable Value Query <class 'django.db.models.sql.query.Query'>
__class__ <class 'django.db.models.lookups.Exact'>
query '92d9a074-3a27-463a-9255-b8ba671df802'
self IntegerFieldExact(Col(eapi_operator_games, games.OperatorGame.id), '92d9a074-3a27-463a-9255-b8ba671df802')
-
/.venv/lib/python3.12/site-packages/django/db/models/lookups.py, line 96, in get_prep_lookupself.lhs, self.rhs = new_exprs
def get_prep_lookup(self):
if not self.prepare_rhs or hasattr(self.rhs, "resolve_expression"):
return self.rhs
if hasattr(self.lhs, "output_field"):
if hasattr(self.lhs.output_field, "get_prep_value"):
return self.lhs.output_field.get_prep_value(self.rhs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^…
elif self.rhs_is_direct_value():
return Value(self.rhs)
return self.rhs
def get_prep_lhs(self):
if hasattr(self.lhs, "resolve_expression"):
Local vars
Variable Value self IntegerFieldExact(Col(eapi_operator_games, games.OperatorGame.id), '92d9a074-3a27-463a-9255-b8ba671df802')
-
/.venv/lib/python3.12/site-packages/django/db/models/fields/__init__.py, line 2130, in get_prep_valuedef get_prep_value(self, value):
value = super().get_prep_value(value)
if value is None:
return None
try:
return int(value)
except (TypeError, ValueError) as e:
raise e.__class__( ^^^^^^^^…
"Field '%s' expected a number but got %r." % (self.name, value),
) from e
def get_db_prep_value(self, value, connection, prepared=False):
value = super().get_db_prep_value(value, connection, prepared)
return connection.ops.adapt_integerfield_value(value, self.get_internal_type())
Local vars
Variable Value __class__ <class 'django.db.models.fields.IntegerField'>
self <django.db.models.fields.BigAutoField: id>
value '92d9a074-3a27-463a-9255-b8ba671df802'
Request information
USER
AnonymousUser
GET
No GET data
POST
No POST data
FILES
No FILES data
COOKIES
No cookie data
META
| Variable | Value |
|---|---|
| ALLOWED_HOSTS | ('sandbox.playegamesnow.com, platform-back-test-1.igamewallets.app, '
'platform-back-test-2.igamewallets.app') |
| AZURE_ACCOUNT_KEY | '********************' |
| AZURE_ACCOUNT_NAME | 'uatplatform17028' |
| AZURE_ADDITIONALLY_ALLOWED_TENANTS | '*' |
| AZURE_CLIENT_ID | 'b42947d6-24be-408f-ba71-fe121a3b73e9' |
| AZURE_CLIENT_SECRET | '********************' |
| AZURE_COMMUNICATION_STR | 'endpoint=https://ewallet-notificator.unitedstates.communication.azure.com/;accesskey=kJTi7e54awS8JB/I118z6z8WMkf2Gl6AtStXr3FMwt1qd305f5Lz5pkm7fmUIi9ptS3IdwkXQJTx5Ump4mbJ5Q==' |
| AZURE_MEDIA_CONTAINER | 'publiccontainer' |
| AZURE_PUBLIC_CONTAINER_BASE_URL | 'https://uatplatform17028.blob.core.windows.net/publiccontainer' |
| AZURE_PUBLIC_CONTAINER_NAME | 'publiccontainer' |
| AZURE_STORAGE_ACCOUNT_NAME | 'uatplatform17028' |
| AZURE_TENANT_ID | '283542f9-9490-4d1c-8652-a94b27a4a9fc' |
| B2C_ACCOUNT_NAME | 'egamewalletuat' |
| B2C_APP_CLIENT_ID | 'f807cef5-cc55-49b8-b9e5-df9db49a2040' |
| B2C_APP_CLIENT_SECRET | '********************' |
| B2C_EXTENSIONS_APP_CLIENT_ID | '6e7fb3e1-0ae9-4f7b-824d-d1c0b9be49ad' |
| B2C_TENANT_ID | '172d86fc-2896-41d2-9d18-a9fa3325ebf5' |
| B2C_TENANT_NAME | 'egamewalletuat.onmicrosoft.com' |
| B2C_USER_FLOW_AUTHORITY_NAME | '********************' |
| CONTENT_LENGTH | '244' |
| CONTENT_TYPE | 'application/json' |
| COSMOS_BACKOFFICE_KEY | '********************' |
| COSMOS_BACKOFFICE_URI | 'https://cosmosdb-backoffice-ewallet-uat-17028.documents.azure.com:443/' |
| COSMOS_USERS_TABLE_KEY | '********************' |
| COSMOS_USERS_TABLE_URI | 'https://cosmosdb-user-table-ewallet-uat-17028.documents.azure.com:443/' |
| CSRF_TRUSTED_ORIGINS | ('https://sandbox.playegamesnow.com, '
'http://platform-back-test-1.igamewallets.app, '
'https://platform-back-test-2.igamewallets.app') |
| CURRENT_ENV | 'uat' |
| DEBUG | 'true' |
| DEFAULT_SENDER_ADDRESS | 'DoNotReply@igamewallets.app' |
| DEFAULT_SMS_FROM_PHONE | '+18666252573' |
| DIAFLOW_HMAC_SECRET | '********************' |
| DJANGO_SETTINGS_MODULE | 'ewallet_platform.settings' |
| DOCKER_ROOT_PATH | 'control-plane/app/platform-back/docker' |
| EMAIL_OWNER_ADDRESS | 'owner@example.com' |
| EWALLET_ACCESS_KEY_ID | '********************' |
| EWALLET_ADMIN_POSTGRES_DB_NAME | 'admin' |
| EWALLET_ADMIN_POSTGRES_PASSWORD | '********************' |
| EWALLET_ADMIN_POSTGRES_PORT | '5432' |
| EWALLET_ADMIN_POSTGRES_SERVER_URI | 'psql-ewallet-uat-lzecf.postgres.database.azure.com' |
| EWALLET_ADMIN_POSTGRES_USER | 'platform_app' |
| EWALLET_API_BASE_URL | '********************' |
| EWALLET_FORGOT_PASSWORD_LINK | '********************' |
| EWALLET_HMAC_SECRET | '********************' |
| EWALLET_REGISTRATION_LINK | 'https://uat.egamewallet.com/account/home' |
| EWALLET_TOLERANCE_SECONDS | '300' |
| GATEWAY_INTERFACE | 'CGI/1.1' |
| GPG_KEY | '********************' |
| GP_KEY_VAULT_URL | '********************' |
| HOME | '/home/python' |
| HOSTNAME | 'platform-back-6568975d4-l4gdz' |
| HTTP_ACCEPT | '*/*' |
| HTTP_ACCEPT_ENCODING | 'gzip' |
| HTTP_AUTHORIZATION | '********************' |
| HTTP_HOST | 'sandbox.playegamesnow.com' |
| HTTP_VIA | 'HTTP/1.1 Azure' |
| HTTP_X_AZURE_CLIENTIP | '2600:1f14:3a80:230a:b019:d912:3cbc:aa6' |
| HTTP_X_AZURE_FDID | '9b0d0038-e609-46e1-a502-7e6db5d145f7' |
| HTTP_X_AZURE_JA4_FINGERPRINT | 't13d3113h1_e8f1e7e78f70_ce5650b735ce' |
| HTTP_X_AZURE_REF | '20260526T153831Z-r1dc8ff76dc7pn5thC1CO1022000000000vg000000001w0z' |
| HTTP_X_AZURE_REQUESTCHAINV2 | 'hops=1' |
| HTTP_X_AZURE_SOCKETIP | '2600:1f14:3a80:230a:b019:d912:3cbc:aa6' |
| HTTP_X_FORWARDED_FOR | '10.244.4.1' |
| HTTP_X_FORWARDED_HOST | 'sandbox.playegamesnow.com' |
| HTTP_X_FORWARDED_PORT | '443' |
| HTTP_X_FORWARDED_PROTO | 'https' |
| HTTP_X_FORWARDED_SERVER | 'traefik-5f7b4fc578-kb6w9' |
| HTTP_X_INGRESS_NAME | 'platform-back-test' |
| HTTP_X_REAL_IP | '10.244.4.1' |
| KEY_VAULT_URL | '********************' |
| KUBERNETES_PORT | 'tcp://10.0.0.1:443' |
| KUBERNETES_PORT_443_TCP | 'tcp://10.0.0.1:443' |
| KUBERNETES_PORT_443_TCP_ADDR | '10.0.0.1' |
| KUBERNETES_PORT_443_TCP_PORT | '443' |
| KUBERNETES_PORT_443_TCP_PROTO | 'tcp' |
| KUBERNETES_SERVICE_HOST | '10.0.0.1' |
| KUBERNETES_SERVICE_PORT | '443' |
| KUBERNETES_SERVICE_PORT_HTTPS | '443' |
| LANG | 'C.UTF-8' |
| MFA_TEST_CODE | '293651' |
| PATH | '/.venv/bin:/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin' |
| PATH_INFO | '/operator/g/purchase/' |
| PGDATABASE | 'platform' |
| PGHOST | 'platform-uat-17028.postgres.database.azure.com' |
| PGPASSWORD | '********************' |
| PGPORT | '5432' |
| PGUSER | 'postgres' |
| PLATFORM_BACK_PORT | 'tcp://10.0.20.194:80' |
| PLATFORM_BACK_PORT_80_TCP | 'tcp://10.0.20.194:80' |
| PLATFORM_BACK_PORT_80_TCP_ADDR | '10.0.20.194' |
| PLATFORM_BACK_PORT_80_TCP_PORT | '80' |
| PLATFORM_BACK_PORT_80_TCP_PROTO | 'tcp' |
| PLATFORM_BACK_SERVICE_HOST | '10.0.20.194' |
| PLATFORM_BACK_SERVICE_PORT | '80' |
| PLATFORM_BACK_SERVICE_PORT_HTTP | '80' |
| POETRY_VERSION | '2.1.0' |
| PYTHON_SHA256 | 'c30bb24b7f1e9a19b11b55a546434f74e739bb4c271a3e3a80ff4380d49f7adb' |
| PYTHON_VERSION | '3.12.11' |
| QUERY_STRING | '' |
| REMOTE_ADDR | '10.244.4.34' |
| REMOTE_HOST | '' |
| REQUEST_METHOD | 'POST' |
| SALES_EMAIL_LIST | '["reti.retik@gmail.com","ak@kodo.software","vl@kodo.software"]' |
| SCRIPT_NAME | '' |
| SENTRY_DEBUG | '0' |
| SENTRY_DSN | 'https://ac4c6244bd9dfa683b9eb7fb6bccd6f3@o4510116102406144.ingest.de.sentry.io/4510329838305360' |
| SENTRY_PROFILES | '1.0' |
| SENTRY_TRACES | '1.0' |
| SERVER_NAME | 'platform-back-6568975d4-l4gdz' |
| SERVER_PORT | '8003' |
| SERVER_PROTOCOL | 'HTTP/1.1' |
| SERVER_SOFTWARE | 'WSGIServer/0.2' |
| TZ | 'UTC' |
| wsgi.errors | <_io.TextIOWrapper name='<stderr>' mode='w' encoding='utf-8'> |
| wsgi.file_wrapper | <class 'wsgiref.util.FileWrapper'> |
| wsgi.input | <django.core.handlers.wsgi.LimitedStream object at 0x7fdc093ae260> |
| wsgi.multiprocess | False |
| wsgi.multithread | True |
| wsgi.run_once | False |
| wsgi.url_scheme | 'http' |
| wsgi.version | (1, 0) |
Settings
Using settings module ewallet_platform.settings
| Setting | Value |
|---|---|
| ABSOLUTE_URL_OVERRIDES | {} |
| ADMINS | [] |
| ALLOWED_HOSTS | ['*'] |
| APPEND_SLASH | True |
| AUTHENTICATION_BACKENDS | '********************' |
| AUTH_PASSWORD_VALIDATORS | '********************' |
| AUTH_USER_MODEL | '********************' |
| AZURE_ACCOUNT_KEY | '********************' |
| AZURE_ACCOUNT_NAME | 'uatplatform17028' |
| AZURE_ADDITIONALLY_ALLOWED_TENANTS | '*' |
| AZURE_CLIENT_ID | 'b42947d6-24be-408f-ba71-fe121a3b73e9' |
| AZURE_CLIENT_SECRET | '********************' |
| AZURE_COMMUNICATION_STR | 'endpoint=https://ewallet-notificator.unitedstates.communication.azure.com/;accesskey=kJTi7e54awS8JB/I118z6z8WMkf2Gl6AtStXr3FMwt1qd305f5Lz5pkm7fmUIi9ptS3IdwkXQJTx5Ump4mbJ5Q==' |
| AZURE_MEDIA_CONTAINER | 'publiccontainer' |
| AZURE_TENANT_ID | '283542f9-9490-4d1c-8652-a94b27a4a9fc' |
| BASE_DIR | PosixPath('/app') |
| CACHES | {'default': {'BACKEND': 'django.core.cache.backends.locmem.LocMemCache'}} |
| CACHE_MIDDLEWARE_ALIAS | 'default' |
| CACHE_MIDDLEWARE_KEY_PREFIX | '********************' |
| CACHE_MIDDLEWARE_SECONDS | 600 |
| 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 | ['https://sandbox.playegamesnow.com', 'http://platform-back-test-1.igamewallets.app', 'https://platform-back-test-2.igamewallets.app'] |
| CSRF_USE_SESSIONS | False |
| CURRENT_ENV | 'uat' |
| DATABASES | {'default': {'ATOMIC_REQUESTS': False,
'AUTOCOMMIT': True,
'CONN_HEALTH_CHECKS': False,
'CONN_MAX_AGE': 0,
'ENGINE': 'django.db.backends.postgresql',
'HOST': 'platform-uat-17028.postgres.database.azure.com',
'NAME': 'platform',
'OPTIONS': {'sslmode': 'require'},
'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 |
| DATA_UPLOAD_MAX_NUMBER_FILES | 100 |
| 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_AUTO_FIELD | 'django.db.models.BigAutoField' |
| DEFAULT_CHARSET | 'utf-8' |
| DEFAULT_EXCEPTION_REPORTER | 'django.views.debug.ExceptionReporter' |
| DEFAULT_EXCEPTION_REPORTER_FILTER | 'django.views.debug.SafeExceptionReporterFilter' |
| DEFAULT_FILE_STORAGE | 'ewallet_platform.storage_backends.AzureMediaStorage' |
| DEFAULT_FROM_EMAIL | 'webmaster@localhost' |
| DEFAULT_INDEX_TABLESPACE | '' |
| DEFAULT_SENDER_ADDRESS | 'DoNotReply@igamewallets.app' |
| DEFAULT_SMS_FROM_PHONE | '+18666252573' |
| DEFAULT_TABLESPACE | '' |
| DIAFLOW_HMAC_SECRET | '********************' |
| DIAFLOW_SANDBOX_MODE | True |
| DISALLOWED_USER_AGENTS | [] |
| EMAIL_BACKEND | 'django.core.mail.backends.smtp.EmailBackend' |
| EMAIL_HOST | 'localhost' |
| EMAIL_HOST_PASSWORD | '********************' |
| EMAIL_HOST_USER | '' |
| 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 |
| 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 | [] |
| FORCE_SCRIPT_NAME | None |
| FORMAT_MODULE_PATH | None |
| FORMS_URLFIELD_ASSUME_HTTPS | False |
| FORM_RENDERER | 'django.forms.renderers.DjangoTemplates' |
| GP_KEY_VAULT_URL | '********************' |
| IGNORABLE_404_URLS | [] |
| INSTALLED_APPS | ['django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'users.apps.UsersConfig', 'processors.apps.ProcessorsConfig', 'games', 'transactions', 'seosettings', 'rest_framework', 'drf_yasg', 'storages'] |
| INTERNAL_IPS | [] |
| KEY_VAULT_URL | '********************' |
| 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'),
('ckb', 'Central Kurdish (Sorani)'),
('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'),
('ms', 'Malay'),
('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'),
('ug', 'Uyghur'),
('uk', 'Ukrainian'),
('ur', 'Urdu'),
('uz', 'Uzbek'),
('vi', 'Vietnamese'),
('zh-hans', 'Simplified Chinese'),
('zh-hant', 'Traditional Chinese')] |
| LANGUAGES_BIDI | ['he', 'ar', 'ar-dz', 'ckb', 'fa', 'ug', '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 | [] |
| LOGGING | {'disable_existing_loggers': False,
'handlers': {'console': {'class': 'logging.StreamHandler'}},
'loggers': {'users': {'handlers': ['console'],
'level': 'INFO',
'propagate': False}},
'root': {'handlers': ['console'], 'level': 'INFO'},
'version': 1} |
| LOGGING_CONFIG | 'logging.config.dictConfig' |
| LOGIN_REDIRECT_URL | '/accounts/profile/' |
| LOGIN_URL | '/accounts/login/' |
| LOGOUT_REDIRECT_URL | None |
| MANAGERS | [] |
| MEDIA_ROOT | '' |
| MEDIA_URL | 'https://uatplatform17028.blob.core.windows.net/publiccontainer/' |
| MESSAGE_STORAGE | 'django.contrib.messages.storage.fallback.FallbackStorage' |
| MFA_TEST_CODE | '293651' |
| MIDDLEWARE | ['django.middleware.security.SecurityMiddleware', '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'] |
| MIGRATION_MODULES | {} |
| MONTH_DAY_FORMAT | 'F j' |
| NUMBER_GROUPING | 0 |
| PASSWORD_HASHERS | '********************' |
| PASSWORD_RESET_TIMEOUT | '********************' |
| PREPEND_WWW | False |
| REST_FRAMEWORK | {'DEFAULT_AUTHENTICATION_CLASSES': '********************'} |
| ROOT_URLCONF | 'ewallet_platform.urls' |
| SALES_EMAIL_LIST | ['[reti.retik@gmail.com', 'ak@kodo.software', 'vl@kodo.software]'] |
| SECRET_KEY | '********************' |
| SECRET_KEY_FALLBACKS | '********************' |
| SECURE_CONTENT_TYPE_NOSNIFF | True |
| SECURE_CROSS_ORIGIN_OPENER_POLICY | 'same-origin' |
| 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 | 'root@localhost' |
| 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 | 'ewallet_platform.settings' |
| SHORT_DATETIME_FORMAT | 'm/d/Y P' |
| SHORT_DATE_FORMAT | 'm/d/Y' |
| SIGNING_BACKEND | 'django.core.signing.TimestampSigner' |
| SILENCED_SYSTEM_CHECKS | [] |
| STATICFILES_DIRS | [PosixPath('/app/static')] |
| STATICFILES_FINDERS | ['django.contrib.staticfiles.finders.FileSystemFinder', 'django.contrib.staticfiles.finders.AppDirectoriesFinder'] |
| STATIC_ROOT | None |
| STATIC_URL | '/static/' |
| STORAGES | {'default': {'BACKEND': 'django.core.files.storage.FileSystemStorage'},
'staticfiles': {'BACKEND': 'django.contrib.staticfiles.storage.StaticFilesStorage'}} |
| TEMPLATES | [{'APP_DIRS': True,
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [PosixPath('/app/templates')],
'OPTIONS': {'context_processors': ['django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages']}}] |
| 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 | 'UTC' |
| USE_I18N | True |
| USE_THOUSAND_SEPARATOR | False |
| USE_TZ | True |
| USE_X_FORWARDED_HOST | False |
| USE_X_FORWARDED_PORT | False |
| WSGI_APPLICATION | 'ewallet_platform.wsgi.application' |
| X_FRAME_OPTIONS | 'DENY' |
| YEAR_MONTH_FORMAT | 'F Y' |