Skip to content
New issue

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

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

Already on GitHub? Sign in to your account

ValueError: invalid literal for int() with base 10: '森林(天然林)' #95

Open
tai271828 opened this issue Feb 8, 2023 · 3 comments
Assignees

Comments

@tai271828
Copy link

Describe the bug
When reporting an event, we got this error from the backend

web_1     | "POST /api/ohshown-events HTTP/1.0" 500 19579                                                                                                                                                                                    
web_1     | Internal Server Error: /api/ohshown-events                                                                
web_1     | Traceback (most recent call last):                                                                                                                                                                                               
web_1     |   File "/usr/local/lib/python3.7/site-packages/django/core/handlers/exception.py", line 34, in inner      
web_1     |     response = get_response(request)                                                                                                                                                                                             
web_1     |   File "/usr/local/lib/python3.7/site-packages/django/core/handlers/base.py", line 115, in _get_response  
web_1     |     response = self.process_exception_by_middleware(e, request)                                           
web_1     |   File "/usr/local/lib/python3.7/site-packages/django/core/handlers/base.py", line 113, in _get_response  
web_1     |     response = wrapped_callback(request, *callback_args, **callback_kwargs)                               
web_1     |   File "/usr/local/lib/python3.7/site-packages/django/views/decorators/csrf.py", line 54, in wrapped_view 
web_1     |     return view_func(*args, **kwargs)                                                                     
web_1     |   File "/usr/local/lib/python3.7/site-packages/django/views/generic/base.py", line 71, in view            
web_1     |     return self.dispatch(request, *args, **kwargs)                                                        
web_1     |   File "/usr/local/lib/python3.7/site-packages/rest_framework/views.py", line 495, in dispatch                                                                                                                                   
web_1     |     response = self.handle_exception(exc)                                                                 
web_1     |   File "/usr/local/lib/python3.7/site-packages/rest_framework/views.py", line 455, in handle_exception
web_1     |     self.raise_uncaught_exception(exc)                                                                    
web_1     |   File "/usr/local/lib/python3.7/site-packages/rest_framework/views.py", line 492, in dispatch                                                                                                                                   
web_1     |     response = handler(request, *args, **kwargs)                                                          
web_1     |   File "/usr/local/lib/python3.7/site-packages/rest_framework/decorators.py", line 55, in handler                                                                                                                                
web_1     |     return func(*args, **kwargs)                                                                          
web_1     |   File "/Disfactory/api/views/factories_cr.py", line 251, in get_nearby_or_create_ohshown_events                                                                                                                                 
web_1     |     return _handle_create_ohshown_events(request)                                                         
web_1     |   File "/Disfactory/api/views/factories_cr.py", line 181, in _handle_create_ohshown_events                                                                                                                                       
web_1     |     new_ohshown_event = OhshownEvent.objects.create(**new_ohshown_event_field)                            
web_1     |   File "/usr/local/lib/python3.7/site-packages/django/db/models/manager.py", line 82, in manager_method                                                                                                                          
web_1     |     return getattr(self.get_queryset(), name)(*args, **kwargs)                                                                                                                                                                                                                                                   
web_1     |   File "/usr/local/lib/python3.7/site-packages/django/db/models/query.py", line 422, in create                                                                                                                                   
web_1     |     obj.save(force_insert=True, using=self.db)                                                            
web_1     |   File "/usr/local/lib/python3.7/site-packages/django/db/models/base.py", line 741, in save                                                                                                                                      
web_1     |     force_update=force_update, update_fields=update_fields)                                                                                                                                                                                                                                                      
web_1     |   File "/usr/local/lib/python3.7/site-packages/django/db/models/base.py", line 779, in save_base                                                                                                                                 
web_1     |     force_update, using, update_fields,                                                                                                                                                                                                                                                                          
web_1     |   File "/usr/local/lib/python3.7/site-packages/django/db/models/base.py", line 870, in _save_table                                                                                                                               
web_1     |     result = self._do_insert(cls._base_manager, using, fields, update_pk, raw)                                                                                                                                                                                                                                   
web_1     |   File "/usr/local/lib/python3.7/site-packages/django/db/models/base.py", line 908, in _do_insert                                                                                                                                
web_1     |     using=using, raw=raw)                                                                                                                                                                                                                                                                                        
web_1     |   File "/usr/local/lib/python3.7/site-packages/django/db/models/manager.py", line 82, in manager_method                    
web_1     |     return getattr(self.get_queryset(), name)(*args, **kwargs)                                                                                                                                                                                                                                                   
web_1     |   File "/usr/local/lib/python3.7/site-packages/django/db/models/query.py", line 1186, in _insert                                                                                                                                                                                                                                                                                
web_1     |     return query.get_compiler(using=using).execute_sql(return_id)                                                                                                                                                                                                                                                
web_1     |   File "/usr/local/lib/python3.7/site-packages/django/db/models/sql/compiler.py", line 1374, in execute_sql                                                                                                                                                                                                                                                                     
web_1     |     for sql, params in self.as_sql():                                                                                                                                                                                                                                                                            
web_1     |   File "/usr/local/lib/python3.7/site-packages/django/db/models/sql/compiler.py", line 1318, in as_sql                                                                                                                                                                                                                                                                          
web_1     |     for obj in self.query.objs                                                                                                                                                                                                                                                                                   
web_1     |   File "/usr/local/lib/python3.7/site-packages/django/db/models/sql/compiler.py", line 1318, in <listcomp>                                                                                                                                                                                                                                                                      
web_1     |     for obj in self.query.objs                                                                                                                    
web_1     |   File "/usr/local/lib/python3.7/site-packages/django/db/models/sql/compiler.py", line 1317, in <listcomp>                                                                                                                                                                                                                                                                      
web_1     |     [self.prepare_value(field, self.pre_save_val(field, obj)) for field in fields]                                                                                                
web_1     |   File "/usr/local/lib/python3.7/site-packages/django/db/models/sql/compiler.py", line 1258, in prepare_value                                                                                                                                                                                                                                                                   
web_1     |     value = field.get_db_prep_save(value, connection=self.connection)                                                                                                             
web_1     |   File "/usr/local/lib/python3.7/site-packages/django/db/models/fields/__init__.py", line 793, in get_db_prep_save                                                                                                                                                                                                                                                              
web_1     |     return self.get_db_prep_value(value, connection=connection, prepared=False)     
web_1     |   File "/usr/local/lib/python3.7/site-packages/django/contrib/postgres/fields/array.py", line 91, in get_db_prep_value                                                                                                                                                                                                                                                          
web_1     |     return [self.base_field.get_db_prep_value(i, connection, prepared=False) for i in value]
web_1     |   File "/usr/local/lib/python3.7/site-packages/django/contrib/postgres/fields/array.py", line 91, in <listcomp>                                                                    
web_1     |     return [self.base_field.get_db_prep_value(i, connection, prepared=False) for i in value]
web_1     |   File "/usr/local/lib/python3.7/site-packages/django/db/models/fields/__init__.py", line 788, in get_db_prep_value
web_1     |     value = self.get_prep_value(value)                                                                    
web_1     |   File "/usr/local/lib/python3.7/site-packages/django/db/models/fields/__init__.py", line 1825, in get_prep_value
web_1     |     return int(value)                                                                                     
web_1     | ValueError: invalid literal for int() with base 10: '森林(天然林)'
web_1     | "POST /api/ohshown-events HTTP/1.0" 500 19579  

To Reproduce
Steps to reproduce the behavior:

  1. Checkout to the latest code base 4a1dbd9
  2. Deploy the code from scratch
  3. Report as usual

Expected behavior
OHSHOWN event is reported

Desktop (please complete the following information):

  • OS: ubuntu-mate 20.04
  • Browser: firefox
  • Version 109.0.1 (64-bit)

Additional context
No error was found during deployment.

@tai271828
Copy link
Author

My educated guess is that the encoding systems between the development OS ( @Neilxx 's laptop) and the deployment env (ohshown.site, which is a ubuntu).

@tai271828 tai271828 changed the title traceback ValueError: invalid literal for int() with base 10: '森林(天然林)' Feb 8, 2023
@Neilxx
Copy link
Collaborator

Neilxx commented Feb 8, 2023

ok
I'll start with this in our next min-sprint!

@Neilxx
Copy link
Collaborator

Neilxx commented Mar 15, 2023

@tai271828 這個我在 staging 測是正常的
異常狀態是發生在你的 local 嗎?
會是你 local 的前端程式沒有更新嗎?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants