Opened 15 years ago
Closed 14 years ago
#13322 closed Bug (needsinfo)
Problem with inspectdb and encoding
Reported by: | Owned by: | nobody | |
---|---|---|---|
Component: | Core (Management commands) | Version: | 1.2-beta |
Severity: | Normal | Keywords: | |
Cc: | Triage Stage: | Accepted | |
Has patch: | yes | Needs documentation: | no |
Needs tests: | yes | Patch needs improvement: | no |
Easy pickings: | no | UI/UX: | no |
Description (last modified by )
While trying to generate model from database with manage.py inspectdb I get the following error:
class Categorias(models.Model): Traceback (most recent call last): File "./manage.py", line 11, in <module> execute_manager(settings) File "/usr/local/lib/python2.6/site-packages/django/core/management/__init__.py", line 438, in execute_manager utility.execute() File "/usr/local/lib/python2.6/site-packages/django/core/management/__init__.py", line 379, in execute self.fetch_command(subcommand).run_from_argv(self.argv) File "/usr/local/lib/python2.6/site-packages/django/core/management/base.py", line 196, in run_from_argv self.execute(*args, **options.__dict__) File "/usr/local/lib/python2.6/site-packages/django/core/management/base.py", line 223, in execute output = self.handle(*args, **options) File "/usr/local/lib/python2.6/site-packages/django/core/management/base.py", line 352, in handle return self.handle_noargs(**options) File "/usr/local/lib/python2.6/site-packages/django/core/management/commands/inspectdb.py", line 22, in handle_noargs for line in self.handle_inspection(options): File "/usr/local/lib/python2.6/site-packages/django/core/management/commands/inspectdb.py", line 113, in handle_inspection field_desc = '%s = models.%s' % (att_name, field_type) UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 4: ordinal not in range(128)
Attachments (1)
Change History (9)
comment:1 by , 15 years ago
comment:3 by , 15 years ago
Component: | Uncategorized → django-admin.py inspectdb |
---|---|
Has patch: | set |
milestone: | → 1.2 |
Decode UTF-8 for table attribute names:
--- django/core/management/commands/inspectdb.py (revisión: 12947) +++ django/core/management/commands/inspectdb.py (copia de trabajo) @@ -110,7 +110,7 @@ if not field_type in ('TextField(', 'CharField('): extra_params['null'] = True - field_desc = '%s = models.%s' % (att_name, field_type) + field_desc = '%s = models.%s' % (att_name.decode('utf-8'), field_type) if extra_params: if not field_desc.endswith('('): field_desc += ', '
comment:4 by , 15 years ago
milestone: | 1.2 |
---|---|
Needs tests: | set |
Triage Stage: | Unreviewed → Accepted |
This isn't critical for 1.2.
It's difficult to evaluate whether the patch is correct without seeing a test case.
comment:5 by , 15 years ago
Test case:
create table test ( día date ); ---------------------------- myconsole> django-admin.py inspectdb ----------------------------
comment:6 by , 14 years ago
Component: | django-admin.py inspectdb → Core (Management commands) |
---|
comment:7 by , 14 years ago
Severity: | → Normal |
---|---|
Type: | → Bug |
comment:8 by , 14 years ago
Easy pickings: | unset |
---|---|
Resolution: | → needsinfo |
Status: | new → closed |
I attached a test that works for me (SQLite/Python2.6/Linux). But the problem might be triggered by a specific backend/python/OS combination. You should give more information about the conditions under which you are able to reproduce the bug.
While trying to generate model from database with manage.py inspectdb I get the following error: