首页 > Django出现'CharField' object has no attribute 'model'怎么解决?

Django出现'CharField' object has no attribute 'model'怎么解决?

刚刚把Django的数据库切换成了Mysql,在执行python manager.py migrate命令是出现

  File "manage.py", line 10, in <module>
    execute_from_command_line(sys.argv)
  File "/home/tenlee/ENV/ENV34/lib/python3.4/site-packages/django/core/management/__init__.py", line 338, in execute_from_command_line
    utility.execute()
  File "/home/tenlee/ENV/ENV34/lib/python3.4/site-packages/django/core/management/__init__.py", line 330, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/home/tenlee/ENV/ENV34/lib/python3.4/site-packages/django/core/management/base.py", line 393, in run_from_argv
    self.execute(*args, **cmd_options)
  File "/home/tenlee/ENV/ENV34/lib/python3.4/site-packages/django/core/management/base.py", line 444, in execute
    output = self.handle(*args, **options)
  File "/home/tenlee/ENV/ENV34/lib/python3.4/site-packages/django/core/management/commands/migrate.py", line 221, in handle
    executor.migrate(targets, plan, fake=fake, fake_initial=fake_initial)
  File "/home/tenlee/ENV/ENV34/lib/python3.4/site-packages/django/db/migrations/executor.py", line 110, in migrate
    self.apply_migration(states[migration], migration, fake=fake, fake_initial=fake_initial)
  File "/home/tenlee/ENV/ENV34/lib/python3.4/site-packages/django/db/migrations/executor.py", line 148, in apply_migration
    state = migration.apply(state, schema_editor)
  File "/home/tenlee/ENV/ENV34/lib/python3.4/site-packages/django/db/migrations/migration.py", line 115, in apply
    operation.database_forwards(self.app_label, schema_editor, old_state, project_state)
  File "/home/tenlee/ENV/ENV34/lib/python3.4/site-packages/django/db/migrations/operations/fields.py", line 201, in database_forwards
    schema_editor.alter_field(from_model, from_field, to_field)
  File "/home/tenlee/ENV/ENV34/lib/python3.4/site-packages/django/db/backends/base/schema.py", line 484, in alter_field
    old_db_params, new_db_params, strict)
  File "/home/tenlee/ENV/ENV34/lib/python3.4/site-packages/django/db/backends/base/schema.py", line 566, in _alter_field
    old_default = self.effective_default(old_field)
  File "/home/tenlee/ENV/ENV34/lib/python3.4/site-packages/django/db/backends/base/schema.py", line 211, in effective_default
    default = field.get_db_prep_save(default, self.connection)
  File "/home/tenlee/ENV/ENV34/lib/python3.4/site-packages/django/db/models/fields/__init__.py", line 710, in get_db_prep_save
    prepared=False)
  File "/home/tenlee/ENV/ENV34/lib/python3.4/site-packages/django/db/models/fields/__init__.py", line 702, in get_db_prep_value
    value = self.get_prep_value(value)
  File "/home/tenlee/ENV/ENV34/lib/python3.4/site-packages/django/db/models/fields/__init__.py", line 1125, in get_prep_value
    return self.to_python(value)
  File "/home/tenlee/ENV/ENV34/lib/python3.4/site-packages/django/db/models/fields/__init__.py", line 1121, in to_python
    return smart_text(value)
  File "/home/tenlee/ENV/ENV34/lib/python3.4/site-packages/django/utils/encoding.py", line 56, in smart_text
    return force_text(s, encoding, strings_only, errors)
  File "/home/tenlee/ENV/ENV34/lib/python3.4/site-packages/django/utils/encoding.py", line 90, in force_text
    s = six.text_type(s)
  File "/home/tenlee/ENV/ENV34/lib/python3.4/site-packages/django/db/models/fields/__init__.py", line 187, in __str__
    model = self.model
AttributeError: 'CharField' object has no attribute 'model'

这个问题,怎么解决啊,之前的用sqlite都没有问题,python manager.py check也是没有问题的。
求解决
补充pip freeze

backports-abc==0.4
blinker==1.4
bootstrap-admin==0.3.6
crypto==1.4.1
decorator==4.0.2
Django==1.8.3
dominate==2.1.12
ipython==4.0.3
ipython-genutils==0.1.0
Jinja2==2.8
jpush==3.1.2
Mako==1.0.3
Markdown==2.6.2
MarkupSafe==0.23
path.py==8.1.1
pexpect==3.3
pickleshare==0.5
Pillow==3.1.1
pyasn1==0.1.9
pycrypto==2.6.1
Pygments==2.0.2
PyMySQL==0.6.6
python-editor==0.5
pytz==2015.4
PyYAML==3.11
queuelib==1.2.2
requests==2.7.0
shellescape==3.4.1
simplegeneric==0.8.1
six==1.10.0
SQLAlchemy==1.0.11
traitlets==4.1.0
visitor==0.1.2
w3lib==1.12.0
Werkzeug==0.10.4
wheel==0.26.0
WTForms==2.1

删除migrations文件夹

不放心的话可以在其它文件夹下备份以下

在manager.py 所在文件夹下运行

python manager.py db init
重新生成migrations文件夹

接着运行:

python3 manage.py db migrate -m "initial migration"</cod>

测试

python3 manage.py db upgrade

【热门文章】
【热门文章】