· 6 years ago · Aug 02, 2019, 06:57 AM
1TypeError at /today-orders/6830/bill/
2unsupported operand type(s) for *: 'NoneType' and 'float'
3Request Method: POST
4Request URL: http://local-crm.webcase-dev.site/today-orders/6830/bill/
5Django Version: 1.10.3
6Exception Type: TypeError
7Exception Value:
8unsupported operand type(s) for *: 'NoneType' and 'float'
9Exception Location: /home/django/local-moving-services-application/server/app/workflow/models/order_billing_info.py in get_discount, line 365
10Python Executable: /home/django/env/bin/python3.6
11Python Version: 3.6.3
12Python Path:
13['/home/django/local-moving-services-application/server/app',
14 '/home/django/env/bin',
15 '/usr/lib/python36.zip',
16 '/usr/lib/python3.6',
17 '/usr/lib/python3.6/lib-dynload',
18 '/home/django/env/lib/python3.6/site-packages',
19 '/home/django/local-moving-services-application/server',
20 '/home/django/local-moving-services-application/server/app',
21 '/home/django/local-moving-services-application/server/']
22Server time: Thu, 1 Aug 2019 23:52:12 -0700
23Traceback Switch to copy-and-paste view
24/home/django/env/lib/python3.6/site-packages/django/core/handlers/exception.py in inner
25 This decorator is automatically applied to all middleware to ensure that
26 no middleware leaks an exception and that the next middleware in the stack
27 can rely on getting a response instead of an exception.
28 """
29 @wraps(get_response, assigned=available_attrs(get_response))
30 def inner(request):
31 try:
32 response = get_response(request) ...
33 except Exception as exc:
34 response = response_for_exception(request, exc)
35 return response
36 return inner
37▶ Local vars
38Variable Value
39exc
40TypeError("unsupported operand type(s) for *: 'NoneType' and 'float'",)
41get_response
42<bound method BaseHandler._get_response of <django.core.handlers.wsgi.WSGIHandler object at 0x7f0c81275ac8>>
43request
44<WSGIRequest: POST '/today-orders/6830/bill/'>
45/home/django/env/lib/python3.6/site-packages/django/core/handlers/base.py in _get_response
46 break
47 if response is None:
48 wrapped_callback = self.make_view_atomic(callback)
49 try:
50 response = wrapped_callback(request, *callback_args, **callback_kwargs)
51 except Exception as e:
52 response = self.process_exception_by_middleware(e, request) ...
53 # Complain if the view returned None (a common error).
54 if response is None:
55 if isinstance(callback, types.FunctionType): # FBV
56 view_name = callback.__name__
57 else: # CBV
58▶ Local vars
59Variable Value
60callback
61<function OrderBillView at 0x7f0c80544378>
62callback_args
63()
64callback_kwargs
65{'page': None, 'pk': '6830'}
66middleware_method
67<bound method XViewMiddleware.process_view of <django.contrib.admindocs.middleware.XViewMiddleware object at 0x7f0c8066bf98>>
68request
69<WSGIRequest: POST '/today-orders/6830/bill/'>
70resolver
71<RegexURLResolver 'app.urls' (None:None) ^/>
72resolver_match
73ResolverMatch(func=staff.view_admin.cabinet.order_bill.OrderBillView, args=(), kwargs={'page': None, 'pk': '6830'}, url_name=today-orders_bill, app_names=['Site'], namespaces=['site'])
74response
75None
76self
77<django.core.handlers.wsgi.WSGIHandler object at 0x7f0c81275ac8>
78wrapped_callback
79<function OrderBillView at 0x7f0c80544378>
80/home/django/env/lib/python3.6/site-packages/django/core/handlers/base.py in _get_response
81 response = middleware_method(request, callback, callback_args, callback_kwargs)
82 if response:
83 break
84 if response is None:
85 wrapped_callback = self.make_view_atomic(callback)
86 try:
87 response = wrapped_callback(request, *callback_args, **callback_kwargs) ...
88 except Exception as e:
89 response = self.process_exception_by_middleware(e, request)
90 # Complain if the view returned None (a common error).
91 if response is None:
92 if isinstance(callback, types.FunctionType): # FBV
93▶ Local vars
94Variable Value
95callback
96<function OrderBillView at 0x7f0c80544378>
97callback_args
98()
99callback_kwargs
100{'page': None, 'pk': '6830'}
101middleware_method
102<bound method XViewMiddleware.process_view of <django.contrib.admindocs.middleware.XViewMiddleware object at 0x7f0c8066bf98>>
103request
104<WSGIRequest: POST '/today-orders/6830/bill/'>
105resolver
106<RegexURLResolver 'app.urls' (None:None) ^/>
107resolver_match
108ResolverMatch(func=staff.view_admin.cabinet.order_bill.OrderBillView, args=(), kwargs={'page': None, 'pk': '6830'}, url_name=today-orders_bill, app_names=['Site'], namespaces=['site'])
109response
110None
111self
112<django.core.handlers.wsgi.WSGIHandler object at 0x7f0c81275ac8>
113wrapped_callback
114<function OrderBillView at 0x7f0c80544378>
115/home/django/env/lib/python3.6/site-packages/django/views/generic/base.py in view
116 def view(request, *args, **kwargs):
117 self = cls(**initkwargs)
118 if hasattr(self, 'get') and not hasattr(self, 'head'):
119 self.head = self.get
120 self.request = request
121 self.args = args
122 self.kwargs = kwargs
123 return self.dispatch(request, *args, **kwargs) ...
124 view.view_class = cls
125 view.view_initkwargs = initkwargs
126 # take name and docstring from class
127 update_wrapper(view, cls, updated=())
128▶ Local vars
129Variable Value
130args
131()
132cls
133<class 'staff.view_admin.cabinet.order_bill.OrderBillView'>
134initkwargs
135{}
136kwargs
137{'page': None, 'pk': '6830'}
138request
139<WSGIRequest: POST '/today-orders/6830/bill/'>
140self
141<staff.view_admin.cabinet.order_bill.OrderBillView object at 0x7f0c7f35bcc0>
142/home/django/local-moving-services-application/server/app/core/permissions/views.py in dispatch
143from django.contrib.auth.mixins import AccessMixin
144class ClassBasedPermissionsMixin(PermissionsRequiredView, AccessMixin):
145 def dispatch(self, request, *args, **kwargs):
146 if not self.view_has_permissions(request.user):
147 return self.handle_no_permission()
148 return super(ClassBasedPermissionsMixin, self).dispatch(request, *args, **kwargs) ...
149 @classmethod
150 def view_has_permissions(self, user):
151 return True
152 def has_permissions(self):
153▶ Local vars
154Variable Value
155__class__
156<class 'core.permissions.views.ClassBasedPermissionsMixin'>
157args
158()
159kwargs
160{'page': None, 'pk': '6830'}
161request
162<WSGIRequest: POST '/today-orders/6830/bill/'>
163self
164<staff.view_admin.cabinet.order_bill.OrderBillView object at 0x7f0c7f35bcc0>
165/home/django/local-moving-services-application/server/trigon/core/views/item/base.py in dispatch
166 url_format = r'^(?P<pk>[0-9]+)/{name}/'
167 url_kwargs = {
168 'pk': 'id',
169 }
170 def dispatch(self, request, *a, **k):
171 self.request = request
172 return super(SingleObjectMixin, self).dispatch(request, *a, **k) ...
173 def get_model_class(self):
174 """Returns model class based on model, object, queryset class attributes
175 """
176 if hasattr(self, 'model') and self.model:
177 return self.model
178▶ Local vars
179Variable Value
180__class__
181<class 'trigon.core.views.item.base.SingleObjectMixin'>
182a
183()
184k
185{'page': None, 'pk': '6830'}
186request
187<WSGIRequest: POST '/today-orders/6830/bill/'>
188self
189<staff.view_admin.cabinet.order_bill.OrderBillView object at 0x7f0c7f35bcc0>
190/home/django/env/lib/python3.6/site-packages/django/views/generic/base.py in dispatch
191 # Try to dispatch to the right method; if a method doesn't exist,
192 # defer to the error handler. Also defer to the error handler if the
193 # request method isn't on the approved list.
194 if request.method.lower() in self.http_method_names:
195 handler = getattr(self, request.method.lower(), self.http_method_not_allowed)
196 else:
197 handler = self.http_method_not_allowed
198 return handler(request, *args, **kwargs) ...
199 def http_method_not_allowed(self, request, *args, **kwargs):
200 logger.warning(
201 'Method Not Allowed (%s): %s', request.method, request.path,
202 extra={'status_code': 405, 'request': request}
203 )
204▶ Local vars
205Variable Value
206args
207()
208handler
209<bound method OrderBillView.post of <staff.view_admin.cabinet.order_bill.OrderBillView object at 0x7f0c7f35bcc0>>
210kwargs
211{'page': None, 'pk': '6830'}
212request
213<WSGIRequest: POST '/today-orders/6830/bill/'>
214self
215<staff.view_admin.cabinet.order_bill.OrderBillView object at 0x7f0c7f35bcc0>
216/usr/lib/python3.6/contextlib.py in inner
217 """
218 return self
219 def __call__(self, func):
220 @wraps(func)
221 def inner(*args, **kwds):
222 with self._recreate_cm():
223 return func(*args, **kwds) ...
224 return inner
225class _GeneratorContextManager(ContextDecorator, AbstractContextManager):
226 """Helper for @contextmanager decorator."""
227▶ Local vars
228Variable Value
229args
230(<staff.view_admin.cabinet.order_bill.OrderBillView object at 0x7f0c7f35bcc0>,
231 <WSGIRequest: POST '/today-orders/6830/bill/'>)
232func
233<function OrderBillView.post at 0x7f0c80664950>
234kwds
235{'page': None, 'pk': '6830'}
236self
237<django.db.transaction.Atomic object at 0x7f0c80661cf8>
238/home/django/local-moving-services-application/server/app/staff/view_admin/cabinet/order_bill.py in post
239 @transaction.atomic
240 def post(self, request, *args, **kwargs):
241 self.object = self.get_object()
242 self.multiform = self.get_multiform()
243 form = self.multiform.forms.get('billing_info')
244 if form.is_valid():
245 return self.form_valid(form) ...
246 return self.form_invalid(form)
247▶ Local vars
248Variable Value
249args
250()
251form
252<OrderBillingInfoForm bound=True, valid=True, fields=(total;hours;tips;less_money;more_money;type;card;cash;packing;yelp;yelp_code;extra;extra_comment;discount;discount_percent_cash;discount_percent_card;discount_type;discount_comment;deposit;temp_changes;temp_changes_comment;tax;without_tax;has_docs;was_payed;total_final;total_with_deposit;agreed_with_expected_time;agreed_with_terms;agreed_with_terms_is;agreed_with_terms_sign;agreed_with_bill_calculations;agreed_with_bill_calculations_is;agreed_with_bill_calculations_sign;agreement_comment;agreed_with_payment;total1;total2;total2_cash;total2_card;card_temp;shared_payment;card_hours;cash_hours;card_percentage;cash_percentage;hours_left_old;hours_card;hours_cash;already_payed_card;already_payed_cash;tax_free_payment_amount_card;tax_free_payment_amount_cash;tax_amount_due_card;tax_amount_due_cash;balance_due_card;balance_due_cash;payment_amount_card;payment_amount_cash)>
253kwargs
254{'page': None, 'pk': '6830'}
255request
256<WSGIRequest: POST '/today-orders/6830/bill/'>
257self
258<staff.view_admin.cabinet.order_bill.OrderBillView object at 0x7f0c7f35bcc0>
259/home/django/local-moving-services-application/server/app/staff/view_admin/cabinet/order_bill.py in form_valid
260 if commit:
261 obj.save()
262 def form_valid(self, form):
263 billing_info = form.save()
264 self.save_packings()
265 self.save_agreements()
266 self.add_payment() ...
267 self.save_expected_time(billing_info)
268 billing_info.recalculate()
269 # Set has_docs and was_payed automaticly
270 if billing_info.agreed_with_payment:
271▶ Local vars
272Variable Value
273billing_info
274<OrderBillingInfo: Order #6830 billing info>
275form
276<OrderBillingInfoForm bound=True, valid=True, fields=(total;hours;tips;less_money;more_money;type;card;cash;packing;yelp;yelp_code;extra;extra_comment;discount;discount_percent_cash;discount_percent_card;discount_type;discount_comment;deposit;temp_changes;temp_changes_comment;tax;without_tax;has_docs;was_payed;total_final;total_with_deposit;agreed_with_expected_time;agreed_with_terms;agreed_with_terms_is;agreed_with_terms_sign;agreed_with_bill_calculations;agreed_with_bill_calculations_is;agreed_with_bill_calculations_sign;agreement_comment;agreed_with_payment;total1;total2;total2_cash;total2_card;card_temp;shared_payment;card_hours;cash_hours;card_percentage;cash_percentage;hours_left_old;hours_card;hours_cash;already_payed_card;already_payed_cash;tax_free_payment_amount_card;tax_free_payment_amount_cash;tax_amount_due_card;tax_amount_due_cash;balance_due_card;balance_due_cash;payment_amount_card;payment_amount_cash)>
277self
278<staff.view_admin.cabinet.order_bill.OrderBillView object at 0x7f0c7f35bcc0>
279/home/django/local-moving-services-application/server/app/staff/view_admin/cabinet/order_bill.py in add_payment
280 token = p.get('stripe_token')
281 payed_cash = int(p.get('was_payed_cash') or 0)
282 if not token and payed_cash > 0:
283 Model.objects.create(
284 type=Model.CASH,
285 amount=payed_cash,
286 order=order ...
287 )
288 elif token:
289 payed_card = p.get('was_payed_card')
290 pref = get_preferences()
291 charge = None
292▶ Local vars
293Variable Value
294Model
295<class 'workflow.models.order_payment.OrderPayment'>
296order
297<Order: 6830 08/02/2019 Working>
298p
299{'1-agreement': '1',
300 '1-packing-cost': '',
301 '1-packing-id': '',
302 '1-packing-name': 'Small box',
303 '1-packing-price': '2',
304 '1-packing-quantity': '0',
305 '10-packing-cost': '',
306 '10-packing-id': '',
307 '10-packing-name': '4-5br packing kit',
308 '10-packing-price': '350',
309 '10-packing-quantity': '0',
310 '2-agreement': '1',
311 '2-packing-cost': '',
312 '2-packing-id': '',
313 '2-packing-name': 'Medium box',
314 '2-packing-price': '3',
315 '2-packing-quantity': '0',
316 '3-agreement': '1',
317 '3-packing-cost': '',
318 '3-packing-id': '',
319 '3-packing-name': 'Large box',
320 '3-packing-price': '4',
321 '3-packing-quantity': '0',
322 '4-packing-cost': '',
323 '4-packing-id': '',
324 '4-packing-name': 'Wardrobe box',
325 '4-packing-price': '15',
326 '4-packing-quantity': '0',
327 '5-agreement': '1',
328 '5-packing-cost': '',
329 '5-packing-id': '',
330 '5-packing-name': 'Blanket (pad)',
331 '5-packing-price': '15',
332 '5-packing-quantity': '0',
333 '6-packing-cost': '',
334 '6-packing-id': '',
335 '6-packing-name': 'Box of wrapping paper',
336 '6-packing-price': '15',
337 '6-packing-quantity': '0',
338 '7-packing-cost': '',
339 '7-packing-id': '',
340 '7-packing-name': 'Roll of bubble wrap',
341 '7-packing-price': '40',
342 '7-packing-quantity': '0',
343 '8-packing-cost': '',
344 '8-packing-id': '',
345 '8-packing-name': '1br packing kit',
346 '8-packing-price': '150',
347 '8-packing-quantity': '0',
348 '9-packing-cost': '',
349 '9-packing-id': '',
350 '9-packing-name': '2-3br packing kit',
351 '9-packing-price': '250',
352 '9-packing-quantity': '0',
353 'action': '',
354 'billing_info-agreed_with_bill_calculations': 'on',
355 'billing_info-agreed_with_bill_calculations_is': '',
356 'billing_info-agreed_with_bill_calculations_sign': '',
357 'billing_info-agreed_with_expected_time': '1',
358 'billing_info-agreed_with_terms': 'on',
359 'billing_info-agreed_with_terms_is': '',
360 'billing_info-agreed_with_terms_sign': '',
361 'billing_info-agreement_comment': '',
362 'billing_info-discount': '',
363 'billing_info-discount_comment': '',
364 'billing_info-discount_type': '1',
365 'billing_info-extra': '',
366 'billing_info-extra_comment': '',
367 'billing_info-hours': '05:00:00',
368 'billing_info-hours_card': '875',
369 'billing_info-hours_cash': '825',
370 'billing_info-packing': '',
371 'billing_info-tips': '',
372 'billing_info-yelp': '',
373 'billing_info-yelp_code': '',
374 'csrfmiddlewaretoken': 'Td7ISYmPKRjqiWYrZfYqBU3ZWw8bHgdQ6XO5PyegMIu3dE9EYappopne5zCNFxFw',
375 'is_adequate': 'adequate',
376 'model-expected_time': '08/02/2019 00:28:28',
377 'stripe_token': '',
378 'was_payed_card': '175',
379 'was_payed_cash': '165'}
380payed_cash
381165
382self
383<staff.view_admin.cabinet.order_bill.OrderBillView object at 0x7f0c7f35bcc0>
384token
385''
386/home/django/env/lib/python3.6/site-packages/django/db/models/manager.py in manager_method
387 def check(self, **kwargs):
388 return []
389 @classmethod
390 def _get_queryset_methods(cls, queryset_class):
391 def create_method(name, method):
392 def manager_method(self, *args, **kwargs):
393 return getattr(self.get_queryset(), name)(*args, **kwargs) ...
394 manager_method.__name__ = method.__name__
395 manager_method.__doc__ = method.__doc__
396 return manager_method
397 new_methods = {}
398 # Refs http://bugs.python.org/issue1785.
399▶ Local vars
400Variable Value
401args
402()
403kwargs
404{'amount': 165, 'order': <Order: 6830 08/02/2019 Working>, 'type': 'cash'}
405name
406'create'
407self
408<trigon.core.managers.queryset.QuerySetManager object at 0x7f0c824dd5f8>
409/home/django/env/lib/python3.6/site-packages/django/db/models/query.py in create
410 def create(self, **kwargs):
411 """
412 Creates a new object with the given kwargs, saving it to the database
413 and returning the created object.
414 """
415 obj = self.model(**kwargs)
416 self._for_write = True
417 obj.save(force_insert=True, using=self.db) ...
418 return obj
419 def _populate_pk_values(self, objs):
420 for obj in objs:
421 if obj.pk is None:
422 obj.pk = obj._meta.pk.get_pk_value_on_save(obj)
423▶ Local vars
424Variable Value
425kwargs
426{'amount': 165, 'order': <Order: 6830 08/02/2019 Working>, 'type': 'cash'}
427obj
428<OrderPayment: 165$ payed Cash for order #6830>
429self
430<QuerySet [<OrderPayment: 793.0$ payed Cash for order #641>, <OrderPayment: 5.0$ payed Cash for order #697>, <OrderPayment: 2.0$ payed Cash for order #697>, <OrderPayment: 2.0$ payed Cash for order #697>, <OrderPayment: 200.0$ payed Cash for order #6803>, <OrderPayment: 694.0$ payed Card for order #675>, <OrderPayment: 800.0$ payed Cash for order #605>, <OrderPayment: 76.0$ payed Card for order #605>, <OrderPayment: 983.0$ payed Card for order #624>, <OrderPayment: 100.0$ payed Cash for order #6821>, <OrderPayment: 237.0$ payed Cash for order #704>, <OrderPayment: 546.0$ payed Cash for order #726>, <OrderPayment: 300.0$ payed Cash for order #703>, <OrderPayment: 100.0$ payed Cash for order #703>, <OrderPayment: 330.0$ payed Cash for order #703>, <OrderPayment: 60.0$ payed Card for order #649>, <OrderPayment: 1054.0$ payed Card for order #679>, <OrderPayment: 620.0$ payed Card for order #610>, <OrderPayment: 1360.0$ payed Card for order #671>, <OrderPayment: 378.0$ payed Card for order #688>, '...(remaining elements truncated)...']>
431/home/django/local-moving-services-application/server/app/workflow/models/order_payment.py in save
432 def __str__(self):
433 return '{}$ payed {} for order #{}'.format(
434 self.amount, self.get_type_display(), self.order_id
435 )
436 def save(self, *args, **kwargs):
437 super(OrderPayment, self).save(*args, **kwargs)
438 self.order.billing_info.recalculate() ...
439 self.order.billing_info.save()
440 return self
441▶ Local vars
442Variable Value
443__class__
444<class 'workflow.models.order_payment.OrderPayment'>
445args
446()
447kwargs
448{'force_insert': True, 'using': 'default'}
449self
450<OrderPayment: 165$ payed Cash for order #6830>
451/home/django/local-moving-services-application/server/app/workflow/models/order_billing_info.py in recalculate
452 self.order.status = Order.DONE
453 self.order.save()
454 def recalculate(self):
455 self.recalculate_packings()
456 self.card, self.cash = self.get_already_payed_amount()
457 shared_payment = self.get_shared_payment() ...
458 card, cash = self.get_payment_amount(shared_payment=shared_payment)
459 self.type = self.CARD if self.cash == 0 \
460 else (self.CASH if self.card == 0 else self.CARD_CASH)
461 self.total = 0
462▶ Local vars
463Variable Value
464self
465<OrderBillingInfo: Order #6830 billing info>
466/home/django/local-moving-services-application/server/app/workflow/models/order_billing_info.py in get_shared_payment
467 )
468 def get_shared_payment(self):
469 return int(sum(map(lambda x: float(x or 0), [
470 self.packing,
471 self.extra,
472 self.tips,
473 0 - float(self.get_discount() or 0), ...
474 0 - float(self.deposit or 0),
475 0 - float(self.temp_changes or 0),
476 0 - float((self.yelp.discount or 0) if self.yelp_id else 0),
477 ])))
478 def get_payment_amount(self, shared_payment=None, overal=False):
479▶ Local vars
480Variable Value
481self
482<OrderBillingInfo: Order #6830 billing info>
483/home/django/local-moving-services-application/server/app/workflow/models/order_billing_info.py in get_discount
484 return self.discount
485 elif self.discount_type == self.PERCENTAGE:
486 if self.type == self.CASH:
487 return self.discount_percent_cash
488 if self.type == self.CARD:
489 return self.discount_percent_card
490 if self.type == self.CARD_CASH:
491 return self.total * ((self.discount or 0) / 100) ...
492 return self.discount
493▶ Local vars
494Variable Value
495self
496<OrderBillingInfo: Order #6830 billing info>
497Environment:
498
499
500Request Method: POST
501Request URL: http://local-crm.webcase-dev.site/today-orders/6830/bill/
502
503Django Version: 1.10.3
504Python Version: 3.6.3
505Installed Applications:
506['api',
507 'preferences',
508 'markup',
509 'accounting',
510 'staff',
511 'workflow',
512 'notifier',
513 'cloud_backup',
514 'v2.dashboard',
515 'v2.orders',
516 'v2.quotes',
517 'v2.review',
518 'v2.transactions',
519 'django.contrib.admin',
520 'django.contrib.auth',
521 'django.contrib.sites',
522 'django.contrib.contenttypes',
523 'django.contrib.sessions',
524 'django.contrib.messages',
525 'django.contrib.staticfiles',
526 'trigon',
527 'trigon.contrib.reversion_',
528 'easy_thumbnails',
529 'rest_framework',
530 'rest_framework_swagger',
531 'django_jinja',
532 'django_jinja.contrib._easy_thumbnails',
533 'django_jinja.contrib._humanize',
534 'reversion',
535 'sorl.thumbnail',
536 'rosetta',
537 'notifications',
538 'django_filters',
539 'treebeard',
540 'vuejs_translate']
541Installed Middleware:
542['django.middleware.security.SecurityMiddleware',
543 'django.contrib.sessions.middleware.SessionMiddleware',
544 'django.middleware.locale.LocaleMiddleware',
545 'django.middleware.common.CommonMiddleware',
546 'django.middleware.csrf.CsrfViewMiddleware',
547 'django.contrib.auth.middleware.AuthenticationMiddleware',
548 'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
549 'django.contrib.messages.middleware.MessageMiddleware',
550 'django.middleware.clickjacking.XFrameOptionsMiddleware',
551 'django.contrib.admindocs.middleware.XViewMiddleware']
552
553
554
555Traceback:
556
557File "/home/django/env/lib/python3.6/site-packages/django/core/handlers/exception.py" in inner
558 39. response = get_response(request)
559
560File "/home/django/env/lib/python3.6/site-packages/django/core/handlers/base.py" in _get_response
561 187. response = self.process_exception_by_middleware(e, request)
562
563File "/home/django/env/lib/python3.6/site-packages/django/core/handlers/base.py" in _get_response
564 185. response = wrapped_callback(request, *callback_args, **callback_kwargs)
565
566File "/home/django/env/lib/python3.6/site-packages/django/views/generic/base.py" in view
567 68. return self.dispatch(request, *args, **kwargs)
568
569File "/home/django/local-moving-services-application/server/app/core/permissions/views.py" in dispatch
570 13. return super(ClassBasedPermissionsMixin, self).dispatch(request, *args, **kwargs)
571
572File "/home/django/local-moving-services-application/server/trigon/core/views/item/base.py" in dispatch
573 22. return super(SingleObjectMixin, self).dispatch(request, *a, **k)
574
575File "/home/django/env/lib/python3.6/site-packages/django/views/generic/base.py" in dispatch
576 88. return handler(request, *args, **kwargs)
577
578File "/usr/lib/python3.6/contextlib.py" in inner
579 52. return func(*args, **kwds)
580
581File "/home/django/local-moving-services-application/server/app/staff/view_admin/cabinet/order_bill.py" in post
582 470. return self.form_valid(form)
583
584File "/home/django/local-moving-services-application/server/app/staff/view_admin/cabinet/order_bill.py" in form_valid
585 426. self.add_payment()
586
587File "/home/django/local-moving-services-application/server/app/staff/view_admin/cabinet/order_bill.py" in add_payment
588 374. order=order
589
590File "/home/django/env/lib/python3.6/site-packages/django/db/models/manager.py" in manager_method
591 85. return getattr(self.get_queryset(), name)(*args, **kwargs)
592
593File "/home/django/env/lib/python3.6/site-packages/django/db/models/query.py" in create
594 399. obj.save(force_insert=True, using=self.db)
595
596File "/home/django/local-moving-services-application/server/app/workflow/models/order_payment.py" in save
597 31. self.order.billing_info.recalculate()
598
599File "/home/django/local-moving-services-application/server/app/workflow/models/order_billing_info.py" in recalculate
600 334. shared_payment = self.get_shared_payment()
601
602File "/home/django/local-moving-services-application/server/app/workflow/models/order_billing_info.py" in get_shared_payment
603 276. 0 - float(self.get_discount() or 0),
604
605File "/home/django/local-moving-services-application/server/app/workflow/models/order_billing_info.py" in get_discount
606 365. return self.total * ((self.discount or 0) / 100)
607
608Exception Type: TypeError at /today-orders/6830/bill/
609Exception Value: unsupported operand type(s) for *: 'NoneType' and 'float'
610
611
612
613Request information
614USER
615Sasha
616
617GET
618No GET data
619
620POST
621Variable Value
622csrfmiddlewaretoken
623'Td7ISYmPKRjqiWYrZfYqBU3ZWw8bHgdQ6XO5PyegMIu3dE9EYappopne5zCNFxFw'
624action
625''
626billing_info-agreed_with_terms_is
627''
628billing_info-agreed_with_terms_sign
629''
630model-expected_time
631'08/02/2019 00:28:28'
632billing_info-hours
633'05:00:00'
634billing_info-hours_cash
635'825'
636billing_info-hours_card
637'875'
638billing_info-yelp
639''
640billing_info-yelp_code
641''
642billing_info-discount_type
643'1'
644billing_info-discount
645''
646billing_info-discount_comment
647''
6481-packing-id
649''
6501-packing-price
651'2'
6521-packing-name
653'Small box'
6541-packing-cost
655''
6561-packing-quantity
657'0'
6582-packing-id
659''
6602-packing-price
661'3'
6622-packing-name
663'Medium box'
6642-packing-cost
665''
6662-packing-quantity
667'0'
6683-packing-id
669''
6703-packing-price
671'4'
6723-packing-name
673'Large box'
6743-packing-cost
675''
6763-packing-quantity
677'0'
6784-packing-id
679''
6804-packing-price
681'15'
6824-packing-name
683'Wardrobe box'
6844-packing-cost
685''
6864-packing-quantity
687'0'
6885-packing-id
689''
6905-packing-price
691'15'
6925-packing-name
693'Blanket (pad)'
6945-packing-cost
695''
6965-packing-quantity
697'0'
6987-packing-id
699''
7007-packing-price
701'40'
7027-packing-name
703'Roll of bubble wrap'
7047-packing-cost
705''
7067-packing-quantity
707'0'
7086-packing-id
709''
7106-packing-price
711'15'
7126-packing-name
713'Box of wrapping paper'
7146-packing-cost
715''
7166-packing-quantity
717'0'
7188-packing-id
719''
7208-packing-price
721'150'
7228-packing-name
723'1br packing kit'
7248-packing-cost
725''
7268-packing-quantity
727'0'
7289-packing-id
729''
7309-packing-price
731'250'
7329-packing-name
733'2-3br packing kit'
7349-packing-cost
735''
7369-packing-quantity
737'0'
73810-packing-id
739''
74010-packing-price
741'350'
74210-packing-name
743'4-5br packing kit'
74410-packing-cost
745''
74610-packing-quantity
747'0'
748billing_info-packing
749''
750billing_info-extra
751''
752billing_info-extra_comment
753''
754billing_info-agreed_with_bill_calculations
755'on'
7561-agreement
757'1'
7582-agreement
759'1'
7603-agreement
761'1'
7625-agreement
763'1'
764billing_info-agreement_comment
765''
766billing_info-agreed_with_bill_calculations_is
767''
768billing_info-agreed_with_bill_calculations_sign
769''
770was_payed_cash
771'165'
772was_payed_card
773'175'
774stripe_token
775''
776billing_info-tips
777''
778billing_info-agreed_with_terms
779'on'
780billing_info-agreed_with_expected_time
781'1'
782is_adequate
783'adequate'
784FILES
785No FILES data
786
787COOKIES
788Variable Value
789__stripe_mid
790'89f9014a-cd8e-4cc9-a1b6-cb8db0ac7772'
791_ga
792'GA1.2.1579714511.1559312606'
793__stripe_sid
794'c944ee30-bc02-44f2-ac05-89f9401263df'
795csrftoken
796'ueUjRN3dsNeUj6ViBkIDECsq6svl3T01HYBGOnVEuEpxeO6vAf9Cr7MFfvZX1asH'
797sessionid
798'ha395gkxo0xmgkksamo28qegicnpeyxi'
799META
800Variable Value
801CONTENT_LENGTH
802'8818'
803CONTENT_TYPE
804'multipart/form-data; boundary=----WebKitFormBoundarydRfeS9XsACmTHuBN'
805CSRF_COOKIE
806'ueUjRN3dsNeUj6ViBkIDECsq6svl3T01HYBGOnVEuEpxeO6vAf9Cr7MFfvZX1asH'
807HTTP_ACCEPT
808'text/html'
809HTTP_ACCEPT_ENCODING
810'gzip, deflate, br'
811HTTP_ACCEPT_LANGUAGE
812'ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7,uk;q=0.6,de;q=0.5'
813HTTP_CACHE_CONTROL
814'no-cache'
815HTTP_CONNECTION
816'close'
817HTTP_COOKIE
818('__stripe_mid=89f9014a-cd8e-4cc9-a1b6-cb8db0ac7772; '
819 '_ga=GA1.2.1579714511.1559312606; '
820 '__stripe_sid=c944ee30-bc02-44f2-ac05-89f9401263df; '
821 'csrftoken=ueUjRN3dsNeUj6ViBkIDECsq6svl3T01HYBGOnVEuEpxeO6vAf9Cr7MFfvZX1asH; '
822 'sessionid=ha395gkxo0xmgkksamo28qegicnpeyxi')
823HTTP_HOST
824'local-crm.webcase-dev.site'
825HTTP_ORIGIN
826'https://local-crm.webcase-dev.site'
827HTTP_PRAGMA
828'no-cache'
829HTTP_REFERER
830'https://local-crm.webcase-dev.site/today-orders/6830/bill/'
831HTTP_SEC_FETCH_MODE
832'cors'
833HTTP_SEC_FETCH_SITE
834'same-origin'
835HTTP_USER_AGENT
836('Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) '
837 'Chrome/77.0.3860.5 Safari/537.36')
838HTTP_X_CSRFTOKEN
839'ueUjRN3dsNeUj6ViBkIDECsq6svl3T01HYBGOnVEuEpxeO6vAf9Cr7MFfvZX1asH'
840HTTP_X_FORWARDED_FOR
841'185.248.130.27'
842HTTP_X_PJAX
843'true'
844HTTP_X_PJAX_CONTAINER
845'pjax-container[name="content"]'
846HTTP_X_REQUESTED_WITH
847'PJAX'
848PATH_INFO
849'/today-orders/6830/bill/'
850QUERY_STRING
851''
852RAW_URI
853'/today-orders/6830/bill/'
854REMOTE_ADDR
855'127.0.0.1'
856REMOTE_PORT
857'57966'
858REQUEST_METHOD
859'POST'
860SCRIPT_NAME
861''
862SERVER_NAME
863'127.0.0.1'
864SERVER_PORT
865'9000'
866SERVER_PROTOCOL
867'HTTP/1.0'
868SERVER_SOFTWARE
869'gunicorn/19.7.1'
870gunicorn.socket
871<gevent._socket3.socket object, fd=18, family=2, type=2049, proto=0>
872wsgi.errors
873<gunicorn.http.wsgi.WSGIErrorsWrapper object at 0x7f0c7f42e710>
874wsgi.file_wrapper
875''
876wsgi.input
877<gunicorn.http.body.Body object at 0x7f0c7f4c86d8>
878wsgi.multiprocess
879True
880wsgi.multithread
881True
882wsgi.run_once
883False
884wsgi.url_scheme
885'http'
886wsgi.version
887(1, 0)
888Settings
889Using settings module app.settings
890Setting Value
891ABSOLUTE_URL_OVERRIDES
892{}
893ADMINS
894[]
895ALLOWED_HOSTS
896['*']
897APPEND_SLASH
898True
899AUTHENTICATION_BACKENDS
900('django.contrib.auth.backends.ModelBackend',
901 'trigon.contrib.auth_.backends.EmailBackend',
902 'trigon.contrib.auth_.backends.PhoneBackend',
903 'guardian.backends.ObjectPermissionBackend')
904AUTH_PASSWORD_VALIDATORS
905'********************'
906AUTH_USER_MODEL
907'auth.User'
908BASE_DIR
909'/home/django/local-moving-services-application/server/app/app'
910CACHES
911{'default': {'BACKEND': 'django_redis.cache.RedisCache',
912 'KEY_PREFIX': '********************',
913 'LOCATION': 'redis://127.0.0.1:6379/1',
914 'OPTIONS': {'CLIENT_CLASS': 'django_redis.client.DefaultClient',
915 'CONNECTION_POOL_KWARGS': {'max_connections': 100},
916 'IGNORE_EXCEPTIONS': True,
917 'MAX_ENTRIES': 100000},
918 'TIMEOUT': 600}}
919CACHE_MIDDLEWARE_ALIAS
920'default'
921CACHE_MIDDLEWARE_KEY_PREFIX
922'********************'
923CACHE_MIDDLEWARE_SECONDS
924600
925CSRF_COOKIE_AGE
92631449600
927CSRF_COOKIE_DOMAIN
928None
929CSRF_COOKIE_HTTPONLY
930False
931CSRF_COOKIE_NAME
932'csrftoken'
933CSRF_COOKIE_PATH
934'/'
935CSRF_COOKIE_SECURE
936False
937CSRF_FAILURE_VIEW
938'django.views.csrf.csrf_failure'
939CSRF_HEADER_NAME
940'HTTP_X_CSRFTOKEN'
941CSRF_TRUSTED_ORIGINS
942[]
943DATABASES
944{'default': {'ATOMIC_REQUESTS': False,
945 'AUTOCOMMIT': True,
946 'CONN_MAX_AGE': 0,
947 'ENGINE': 'django.db.backends.postgresql_psycopg2',
948 'HOST': '',
949 'NAME': 'local_moving',
950 'OPTIONS': {},
951 'PASSWORD': '********************',
952 'PORT': '',
953 'TEST': {'CHARSET': None,
954 'COLLATION': None,
955 'MIRROR': None,
956 'NAME': None},
957 'TIME_ZONE': None,
958 'USER': 'pguser'}}
959DATABASE_ROUTERS
960[]
961DATA_UPLOAD_MAX_MEMORY_SIZE
9622621440
963DATA_UPLOAD_MAX_NUMBER_FIELDS
9641000
965DATETIME_FORMAT
966'%m/%d/%Y %H:%M:%S'
967DATETIME_INPUT_FORMATS
968['%m/%d/%Y %H:%M:%S', '%m/%d/%Y %I:%M:%S %p']
969DATE_FORMAT
970'%m/%d/%Y'
971DATE_INPUT_FORMATS
972['%m/%d/%Y', '%m/%d/%y']
973DEBUG
974True
975DEBUG_PROPAGATE_EXCEPTIONS
976False
977DECIMAL_SEPARATOR
978'.'
979DEFAULT_CHARSET
980'utf-8'
981DEFAULT_CONTENT_TYPE
982'text/html'
983DEFAULT_EXCEPTION_REPORTER_FILTER
984'django.views.debug.SafeExceptionReporterFilter'
985DEFAULT_EXTENSIONS
986['jinja2.ext.do',
987 'jinja2.ext.loopcontrols',
988 'jinja2.ext.with_',
989 'jinja2.ext.i18n',
990 'jinja2.ext.autoescape',
991 'django_jinja.builtins.extensions.CsrfExtension',
992 'django_jinja.builtins.extensions.CacheExtension',
993 'django_jinja.builtins.extensions.TimezoneExtension',
994 'django_jinja.builtins.extensions.UrlsExtension',
995 'django_jinja.builtins.extensions.StaticFilesExtension',
996 'django_jinja.builtins.extensions.DjangoFiltersExtension']
997DEFAULT_FILE_STORAGE
998'django.core.files.storage.FileSystemStorage'
999DEFAULT_FROM_EMAIL
1000'localmoving2016@gmail.com'
1001DEFAULT_INDEX_TABLESPACE
1002''
1003DEFAULT_TABLESPACE
1004''
1005DISALLOWED_USER_AGENTS
1006[]
1007DROPBOX_OAUTH2_TOKEN
1008'********************'
1009EMAIL_BACKEND
1010'django.core.mail.backends.smtp.EmailBackend'
1011EMAIL_HOST
1012'smtp.gmail.com'
1013EMAIL_HOST_PASSWORD
1014'********************'
1015EMAIL_HOST_USER
1016'localmoving2016@gmail.com'
1017EMAIL_PORT
1018587
1019EMAIL_SSL_CERTFILE
1020None
1021EMAIL_SSL_KEYFILE
1022'********************'
1023EMAIL_SUBJECT_PREFIX
1024'[Django] '
1025EMAIL_TIMEOUT
1026None
1027EMAIL_USE_SSL
1028False
1029EMAIL_USE_TLS
1030True
1031FILE_CHARSET
1032'utf-8'
1033FILE_UPLOAD_DIRECTORY_PERMISSIONS
1034None
1035FILE_UPLOAD_HANDLERS
1036['django.core.files.uploadhandler.MemoryFileUploadHandler',
1037 'django.core.files.uploadhandler.TemporaryFileUploadHandler']
1038FILE_UPLOAD_MAX_MEMORY_SIZE
10392621440
1040FILE_UPLOAD_PERMISSIONS
1041None
1042FILE_UPLOAD_TEMP_DIR
1043None
1044FIRST_DAY_OF_WEEK
10450
1046FIXTURE_DIRS
1047[]
1048FORCE_SCRIPT_NAME
1049None
1050FORMAT_MODULE_PATH
1051None
1052GOOGLE_MAPS_API_KEY
1053'********************'
1054IGNORABLE_404_URLS
1055[]
1056INSTALLED_APPS
1057['api',
1058 'preferences',
1059 'markup',
1060 'accounting',
1061 'staff',
1062 'workflow',
1063 'notifier',
1064 'cloud_backup',
1065 'v2.dashboard',
1066 'v2.orders',
1067 'v2.quotes',
1068 'v2.review',
1069 'v2.transactions',
1070 'django.contrib.admin',
1071 'django.contrib.auth',
1072 'django.contrib.sites',
1073 'django.contrib.contenttypes',
1074 'django.contrib.sessions',
1075 'django.contrib.messages',
1076 'django.contrib.staticfiles',
1077 'trigon',
1078 'trigon.contrib.reversion_',
1079 'easy_thumbnails',
1080 'rest_framework',
1081 'rest_framework_swagger',
1082 'django_jinja',
1083 'django_jinja.contrib._easy_thumbnails',
1084 'django_jinja.contrib._humanize',
1085 'reversion',
1086 'sorl.thumbnail',
1087 'rosetta',
1088 'notifications',
1089 'django_filters',
1090 'treebeard',
1091 'vuejs_translate']
1092INTERNAL_IPS
1093[]
1094LANGUAGES
1095[('en',
1096 <django.utils.functional.lazy.<locals>.__proxy__ object at 0x7f0c87347ac8>)]
1097LANGUAGES_BIDI
1098['he', 'ar', 'fa', 'ur']
1099LANGUAGE_CODE
1100'en'
1101LANGUAGE_COOKIE_AGE
1102None
1103LANGUAGE_COOKIE_DOMAIN
1104None
1105LANGUAGE_COOKIE_NAME
1106'django_language'
1107LANGUAGE_COOKIE_PATH
1108'/'
1109LOCALE_PATHS
1110['/home/django/local-moving-services-application/server/app/app/app/locale']
1111LOGGING
1112{'disable_existing_loggers': False,
1113 'filters': {'require_debug_false': {'()': 'django.utils.log.RequireDebugFalse'}},
1114 'formatters': {'simple': {'format': '%(levelname)s %(message)s'},
1115 'verbose': {'format': '%(levelname)s %(asctime)s %(module)s '
1116 '%(process)d %(thread)d %(message)s'}},
1117 'handlers': {'console': {'class': 'logging.StreamHandler',
1118 'formatter': 'verbose',
1119 'level': 'DEBUG'},
1120 'mail_admins': {'class': 'logging.StreamHandler',
1121 'formatter': 'verbose',
1122 'level': 'ERROR'}},
1123 'loggers': {'django.request': {'handlers': ['console'],
1124 'level': 'ERROR',
1125 'propagate': True}},
1126 'version': 1}
1127LOGGING_CONFIG
1128'logging.config.dictConfig'
1129LOGIN_REDIRECT_URL
1130'/'
1131LOGIN_URL
1132'/auth/login/'
1133LOGOUT_REDIRECT_URL
1134None
1135MANAGERS
1136[]
1137MEDIA_ROOT
1138'/home/django/local-moving-services-application/server/app/app/uploads'
1139MEDIA_URL
1140'/uploads/'
1141MESSAGE_STORAGE
1142'django.contrib.messages.storage.fallback.FallbackStorage'
1143MIDDLEWARE
1144['django.middleware.security.SecurityMiddleware',
1145 'django.contrib.sessions.middleware.SessionMiddleware',
1146 'django.middleware.locale.LocaleMiddleware',
1147 'django.middleware.common.CommonMiddleware',
1148 'django.middleware.csrf.CsrfViewMiddleware',
1149 'django.contrib.auth.middleware.AuthenticationMiddleware',
1150 'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
1151 'django.contrib.messages.middleware.MessageMiddleware',
1152 'django.middleware.clickjacking.XFrameOptionsMiddleware',
1153 'django.contrib.admindocs.middleware.XViewMiddleware']
1154MIDDLEWARE_CLASSES
1155['django.middleware.common.CommonMiddleware',
1156 'django.middleware.csrf.CsrfViewMiddleware']
1157MIGRATION_MODULES
1158{}
1159MONTH_DAY_FORMAT
1160'F j'
1161NUMBER_GROUPING
11620
1163PASSWORD_HASHERS
1164'********************'
1165PASSWORD_RESET_TIMEOUT_DAYS
1166'********************'
1167PREFERENCES_DEFAULT
1168'global'
1169PREPEND_WWW
1170False
1171PROJECT_APPS
1172['api',
1173 'preferences',
1174 'markup',
1175 'accounting',
1176 'staff',
1177 'workflow',
1178 'notifier',
1179 'cloud_backup',
1180 'v2.dashboard',
1181 'v2.orders',
1182 'v2.quotes',
1183 'v2.review',
1184 'v2.transactions']
1185RECAPTCHA_PRIVATE_KEY
1186'********************'
1187REST_FRAMEWORK
1188{'DEFAULT_AUTHENTICATION_CLASSES': ('rest_framework.authentication.SessionAuthentication',),
1189 'DEFAULT_PERMISSION_CLASSES': ('rest_framework.permissions.IsAuthenticated',)}
1190ROOT_URLCONF
1191'app.urls'
1192ROSETTA_ENABLE_TRANSLATION_SUGGESTIONS
1193True
1194ROSETTA_SHOW_AT_ADMIN_PANEL
1195True
1196SECRET_KEY
1197'********************'
1198SECURE_BROWSER_XSS_FILTER
1199False
1200SECURE_CONTENT_TYPE_NOSNIFF
1201False
1202SECURE_HSTS_INCLUDE_SUBDOMAINS
1203False
1204SECURE_HSTS_SECONDS
12050
1206SECURE_PROXY_SSL_HEADER
1207None
1208SECURE_REDIRECT_EXEMPT
1209[]
1210SECURE_SSL_HOST
1211None
1212SECURE_SSL_REDIRECT
1213False
1214SERVER_EMAIL
1215'root@localhost'
1216SESSION_CACHE_ALIAS
1217'default'
1218SESSION_COOKIE_AGE
121943200
1220SESSION_COOKIE_DOMAIN
1221None
1222SESSION_COOKIE_HTTPONLY
1223True
1224SESSION_COOKIE_NAME
1225'sessionid'
1226SESSION_COOKIE_PATH
1227'/'
1228SESSION_COOKIE_SECURE
1229False
1230SESSION_ENGINE
1231'django.contrib.sessions.backends.db'
1232SESSION_EXPIRE_AT_BROWSER_CLOSE
1233False
1234SESSION_FILE_PATH
1235None
1236SESSION_SAVE_EVERY_REQUEST
1237True
1238SESSION_SERIALIZER
1239'django.contrib.sessions.serializers.JSONSerializer'
1240SETTINGS_MODULE
1241'app.settings'
1242SHORT_DATETIME_FORMAT
1243'm/d/Y P'
1244SHORT_DATE_FORMAT
1245'm/d/Y'
1246SIGNING_BACKEND
1247'django.core.signing.TimestampSigner'
1248SILENCED_SYSTEM_CHECKS
1249[]
1250SITE_ID
12511
1252STATICFILES_DIRS
1253[]
1254STATICFILES_FINDERS
1255['django.contrib.staticfiles.finders.FileSystemFinder',
1256 'django.contrib.staticfiles.finders.AppDirectoriesFinder']
1257STATICFILES_STORAGE
1258'django.contrib.staticfiles.storage.StaticFilesStorage'
1259STATIC_ROOT
1260'/home/django/local-moving-services-application/server/app/app/static'
1261STATIC_URL
1262'/static/'
1263TEMPLATES
1264[{'APP_DIRS': True,
1265 'BACKEND': 'trigon.core.backends.jinja2.Jinja2',
1266 'DIRS': [],
1267 'NAME': 'django_jinja2',
1268 'OPTIONS': {'auto_reload': True,
1269 'bytecode_cache': {'backend': 'django_jinja.cache.BytecodeCache',
1270 'enabled': True,
1271 'name': 'default'},
1272 'context_processors': ['django.contrib.auth.context_processors.auth',
1273 'django.template.context_processors.debug',
1274 'django.template.context_processors.i18n',
1275 'django.template.context_processors.media',
1276 'django.template.context_processors.static',
1277 'django.template.context_processors.tz',
1278 'django.contrib.messages.context_processors.messages'],
1279 'debug': True,
1280 'environment': 'trigon.core.env.jinja2.environment',
1281 'extensions': ['jinja2.ext.do',
1282 'jinja2.ext.loopcontrols',
1283 'jinja2.ext.with_',
1284 'jinja2.ext.i18n',
1285 'jinja2.ext.autoescape',
1286 'django_jinja.builtins.extensions.CsrfExtension',
1287 'django_jinja.builtins.extensions.UrlsExtension',
1288 'django_jinja.builtins.extensions.CacheExtension',
1289 'django_jinja.builtins.extensions.StaticFilesExtension',
1290 'django_jinja.builtins.extensions.TimezoneExtension'],
1291 'filters': {},
1292 'globals': {},
1293 'match_extension': '.jinja',
1294 'newstyle_gettext': True,
1295 'undefined': <class 'jinja2.runtime.Undefined'>}},
1296 {'APP_DIRS': True,
1297 'BACKEND': 'django.template.backends.django.DjangoTemplates',
1298 'DIRS': [],
1299 'OPTIONS': {'context_processors': ['django.template.context_processors.media',
1300 'django.template.context_processors.static',
1301 'django.template.context_processors.debug',
1302 'django.template.context_processors.request',
1303 'django.contrib.messages.context_processors.messages',
1304 'django.contrib.auth.context_processors.auth']}}]
1305TEST_NON_SERIALIZED_APPS
1306[]
1307TEST_RUNNER
1308'django.test.runner.DiscoverRunner'
1309THOUSAND_SEPARATOR
1310','
1311THUMBNAIL_PROCESSORS
1312('easy_thumbnails.processors.colorspace',
1313 'easy_thumbnails.processors.autocrop',
1314 'easy_thumbnails.processors.scale_and_crop',
1315 'easy_thumbnails.processors.filters',
1316 'easy_thumbnails.processors.background')
1317TIME_FORMAT
1318'%H:%M:%S'
1319TIME_INPUT_FORMATS
1320['%H:%M:%S',
1321 '%H:%M:%S.%f',
1322 '%H:%M',
1323 '%I:%M:%S %p',
1324 '%I:%M:%S.%f %p',
1325 '%I:%M %p']
1326TIME_ZONE
1327'America/Los_Angeles'
1328USE_ETAGS
1329False
1330USE_I18N
1331True
1332USE_L10N
1333True
1334USE_THOUSAND_SEPARATOR
1335False
1336USE_TZ
1337False
1338USE_X_FORWARDED_HOST
1339False
1340USE_X_FORWARDED_PORT
1341False
1342WSGI_APPLICATION
1343'app.wsgi.application'
1344X_FRAME_OPTIONS
1345'SAMEORIGIN'
1346YEAR_MONTH_FORMAT
1347'F Y'
1348You'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.