Model类:
fromdjango.dbimportmodels
fromcommon.modelsimportDepartment,User
# Create your models here.
classEmployer(models.Model):
user = models.ForeignKey(User)
birthdate = models.DateField
hometown = models.CharField("籍贯",max_length=50)
nation = models.CharField("民族",max_length=20)
edu = models.TextField("教育经历",max_length=500)
resume = models.TextField("工作经历",max_length=500)
def__str__(self):
returnself.emp_name
classMeta:
verbose_name ="职工"#默认显示复数的形式
verbose_name_plural = verbose_name#显示成单数的形式
运行makemigrations正常,但运行migrate报错:
manage.py@travel > migrate"C:\Program Files (x86)\JetBrains\PyCharm 2016.2.3\bin\runnerw.exe" C:\Users\Acer\AppData\Local\Programs\Python\Python35\python.exe "C:\Program Files (x86)\JetBrains\PyCharm 2016.2.3\helpers\pycharm\django_manage.py" migrate E:/python_project/travelOperations to perform: Synchronize unmigrated apps: staticfiles, messages Apply all migrations: contenttypes, common, travel_list, sessions, auth, admin, employerSynchronizing apps without migrations: Creating tables... Running deferred SQL... Installing custom SQL...Running migrations: Rendering model states... DONE Applying employer.0003_auto_20161203_1445...Traceback (most recent call last): File "C:\Users\Acer\AppData\Local\Programs\Python\Python35\lib\site-packages\django\db\backends\utils.py", line 64, in execute return self.cursor.execute(sql, params) File "C:\Users\Acer\AppData\Local\Programs\Python\Python35\lib\site-packages\django\db\backends\mysql\base.py", line 124, in execute return self.cursor.execute(query, args) File "C:\Users\Acer\AppData\Local\Programs\Python\Python35\lib\site-packages\pymysql\cursors.py", line 166, in execute result = self._query(query) File "C:\Users\Acer\AppData\Local\Programs\Python\Python35\lib\site-packages\pymysql\cursors.py", line 322, in _query conn.query(q) File "C:\Users\Acer\AppData\Local\Programs\Python\Python35\lib\site-packages\pymysql\connections.py", line 835, in query self._affected_rows = self._read_query_result(unbuffered=unbuffered) File "C:\Users\Acer\AppData\Local\Programs\Python\Python35\lib\site-packages\pymysql\connections.py", line 1019, in _read_query_result result.read() File "C:\Users\Acer\AppData\Local\Programs\Python\Python35\lib\site-packages\pymysql\connections.py", line 1302, in read first_packet = self.connection._read_packet() File "C:\Users\Acer\AppData\Local\Programs\Python\Python35\lib\site-packages\pymysql\connections.py", line 981, in _read_packet packet.check_error() File "C:\Users\Acer\AppData\Local\Programs\Python\Python35\lib\site-packages\pymysql\connections.py", line 393, in check_error err.raise_mysql_exception(self._data) File "C:\Users\Acer\AppData\Local\Programs\Python\Python35\lib\site-packages\pymysql\err.py", line 107, in raise_mysql_exception raise errorclass(errno, errval)pymysql.err.InternalError: (1067, "Invalid default value for 'nation'")The above exception was the direct cause of the following exception:Traceback (most recent call last): File "C:\Program Files (x86)\JetBrains\PyCharm 2016.2.3\helpers\pycharm\django_manage.py", line 41, inrun_module(manage_file, None, '__main__', True) File "C:\Users\Acer\AppData\Local\Programs\Python\Python35\lib\runpy.py", line 182, in run_module return _run_module_code(code, init_globals, run_name, mod_spec) File "C:\Users\Acer\AppData\Local\Programs\Python\Python35\lib\runpy.py", line 96, in _run_module_code mod_name, mod_spec, pkg_name, script_name) File "C:\Users\Acer\AppData\Local\Programs\Python\Python35\lib\runpy.py", line 85, in _run_code exec(code, run_globals) File "E:/python_project/travel\manage.py", line 22, inexecute_from_command_line(sys.argv) File "C:\Users\Acer\AppData\Local\Programs\Python\Python35\lib\site-packages\django\core\management\__init__.py", line 354, in execute_from_command_line utility.execute() File "C:\Users\Acer\AppData\Local\Programs\Python\Python35\lib\site-packages\django\core\management\__init__.py", line 346, in execute self.fetch_command(subcommand).run_from_argv(self.argv) File "C:\Users\Acer\AppData\Local\Programs\Python\Python35\lib\site-packages\django\core\management\base.py", line 394, in run_from_argv self.execute(*args, **cmd_options) File "C:\Users\Acer\AppData\Local\Programs\Python\Python35\lib\site-packages\django\core\management\base.py", line 445, in execute output = self.handle(*args, **options) File "C:\Users\Acer\AppData\Local\Programs\Python\Python35\lib\site-packages\django\core\management\commands\migrate.py", line 222, in handle executor.migrate(targets, plan, fake=fake, fake_initial=fake_initial) File "C:\Users\Acer\AppData\Local\Programs\Python\Python35\lib\site-packages\django\db\migrations\executor.py", line 110, in migrate self.apply_migration(states[migration], migration, fake=fake, fake_initial=fake_initial) File "C:\Users\Acer\AppData\Local\Programs\Python\Python35\lib\site-packages\django\db\migrations\executor.py", line 148, in apply_migration state = migration.apply(state, schema_editor) File "C:\Users\Acer\AppData\Local\Programs\Python\Python35\lib\site-packages\django\db\migrations\migration.py", line 115, in apply operation.database_forwards(self.app_label, schema_editor, old_state, project_state) File "C:\Users\Acer\AppData\Local\Programs\Python\Python35\lib\site-packages\django\db\migrations\operations\fields.py", line 201, in database_forwards schema_editor.alter_field(from_model, from_field, to_field) File "C:\Users\Acer\AppData\Local\Programs\Python\Python35\lib\site-packages\django\db\backends\base\schema.py", line 484, in alter_field old_db_params, new_db_params, strict) File "C:\Users\Acer\AppData\Local\Programs\Python\Python35\lib\site-packages\django\db\backends\base\schema.py", line 636, in _alter_field params, File "C:\Users\Acer\AppData\Local\Programs\Python\Python35\lib\site-packages\django\db\backends\base\schema.py", line 111, in execute cursor.execute(sql, params) File "C:\Users\Acer\AppData\Local\Programs\Python\Python35\lib\site-packages\django\db\backends\utils.py", line 79, in execute return super(CursorDebugWrapper, self).execute(sql, params) File "C:\Users\Acer\AppData\Local\Programs\Python\Python35\lib\site-packages\django\db\backends\utils.py", line 64, in execute return self.cursor.execute(sql, params) File "C:\Users\Acer\AppData\Local\Programs\Python\Python35\lib\site-packages\django\db\utils.py", line 98, in __exit__ six.reraise(dj_exc_type, dj_exc_value, traceback) File "C:\Users\Acer\AppData\Local\Programs\Python\Python35\lib\site-packages\django\utils\six.py", line 685, in reraise raise value.with_traceback(tb) File "C:\Users\Acer\AppData\Local\Programs\Python\Python35\lib\site-packages\django\db\backends\utils.py", line 64, in execute return self.cursor.execute(sql, params) File "C:\Users\Acer\AppData\Local\Programs\Python\Python35\lib\site-packages\django\db\backends\mysql\base.py", line 124, in execute return self.cursor.execute(query, args) File "C:\Users\Acer\AppData\Local\Programs\Python\Python35\lib\site-packages\pymysql\cursors.py", line 166, in execute result = self._query(query) File "C:\Users\Acer\AppData\Local\Programs\Python\Python35\lib\site-packages\pymysql\cursors.py", line 322, in _query conn.query(q) File "C:\Users\Acer\AppData\Local\Programs\Python\Python35\lib\site-packages\pymysql\connections.py", line 835, in query self._affected_rows = self._read_query_result(unbuffered=unbuffered) File "C:\Users\Acer\AppData\Local\Programs\Python\Python35\lib\site-packages\pymysql\connections.py", line 1019, in _read_query_result result.read() File "C:\Users\Acer\AppData\Local\Programs\Python\Python35\lib\site-packages\pymysql\connections.py", line 1302, in read first_packet = self.connection._read_packet() File "C:\Users\Acer\AppData\Local\Programs\Python\Python35\lib\site-packages\pymysql\connections.py", line 981, in _read_packet packet.check_error() File "C:\Users\Acer\AppData\Local\Programs\Python\Python35\lib\site-packages\pymysql\connections.py", line 393, in check_error err.raise_mysql_exception(self._data) File "C:\Users\Acer\AppData\Local\Programs\Python\Python35\lib\site-packages\pymysql\err.py", line 107, in raise_mysql_exception raise errorclass(errno, errval)django.db.utils.InternalError: (1067, "Invalid default value for 'nation'")Process finished with exit code 1manage.py@travel > makemigrations"C:\Program Files (x86)\JetBrains\PyCharm 2016.2.3\bin\runnerw.exe" C:\Users\Acer\AppData\Local\Programs\Python\Python35\python.exe "C:\Program Files (x86)\JetBrains\PyCharm 2016.2.3\helpers\pycharm\django_manage.py" makemigrations E:/python_project/travelMigrations for 'employer': 0005_auto_20161203_1451.py: - Change Meta options on employerProcess finished with exit code 0manage.py@travel > migrate"C:\Program Files (x86)\JetBrains\PyCharm 2016.2.3\bin\runnerw.exe" C:\Users\Acer\AppData\Local\Programs\Python\Python35\python.exe "C:\Program Files (x86)\JetBrains\PyCharm 2016.2.3\helpers\pycharm\django_manage.py" migrate E:/python_project/travelOperations to perform: Synchronize unmigrated apps: messages, staticfiles Apply all migrations: employer, auth, travel_list, admin, sessions, common, contenttypesSynchronizing apps without migrations: Creating tables... Running deferred SQL... Installing custom SQL...Running migrations: Rendering model states... DONE Applying employer.0003_auto_20161203_1445...Traceback (most recent call last): File "C:\Users\Acer\AppData\Local\Programs\Python\Python35\lib\site-packages\django\db\backends\utils.py", line 64, in execute return self.cursor.execute(sql, params) File "C:\Users\Acer\AppData\Local\Programs\Python\Python35\lib\site-packages\django\db\backends\mysql\base.py", line 124, in execute return self.cursor.execute(query, args) File "C:\Users\Acer\AppData\Local\Programs\Python\Python35\lib\site-packages\pymysql\cursors.py", line 166, in execute result = self._query(query) File "C:\Users\Acer\AppData\Local\Programs\Python\Python35\lib\site-packages\pymysql\cursors.py", line 322, in _query conn.query(q) File "C:\Users\Acer\AppData\Local\Programs\Python\Python35\lib\site-packages\pymysql\connections.py", line 835, in query self._affected_rows = self._read_query_result(unbuffered=unbuffered) File "C:\Users\Acer\AppData\Local\Programs\Python\Python35\lib\site-packages\pymysql\connections.py", line 1019, in _read_query_result result.read() File "C:\Users\Acer\AppData\Local\Programs\Python\Python35\lib\site-packages\pymysql\connections.py", line 1302, in read first_packet = self.connection._read_packet() File "C:\Users\Acer\AppData\Local\Programs\Python\Python35\lib\site-packages\pymysql\connections.py", line 981, in _read_packet packet.check_error() File "C:\Users\Acer\AppData\Local\Programs\Python\Python35\lib\site-packages\pymysql\connections.py", line 393, in check_error err.raise_mysql_exception(self._data) File "C:\Users\Acer\AppData\Local\Programs\Python\Python35\lib\site-packages\pymysql\err.py", line 107, in raise_mysql_exception raise errorclass(errno, errval)pymysql.err.InternalError: (1067, "Invalid default value for 'nation'")The above exception was the direct cause of the following exception:Traceback (most recent call last): File "C:\Program Files (x86)\JetBrains\PyCharm 2016.2.3\helpers\pycharm\django_manage.py", line 41, inrun_module(manage_file, None, '__main__', True) File "C:\Users\Acer\AppData\Local\Programs\Python\Python35\lib\runpy.py", line 182, in run_module return _run_module_code(code, init_globals, run_name, mod_spec) File "C:\Users\Acer\AppData\Local\Programs\Python\Python35\lib\runpy.py", line 96, in _run_module_code mod_name, mod_spec, pkg_name, script_name) File "C:\Users\Acer\AppData\Local\Programs\Python\Python35\lib\runpy.py", line 85, in _run_code exec(code, run_globals) File "E:/python_project/travel\manage.py", line 22, inexecute_from_command_line(sys.argv)
File "C:\Users\Acer\AppData\Local\Programs\Python\Python35\lib\site-packages\django\core\management\__init__.py", line 354, in execute_from_command_line
utility.execute()
File "C:\Users\Acer\AppData\Local\Programs\Python\Python35\lib\site-packages\django\core\management\__init__.py", line 346, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "C:\Users\Acer\AppData\Local\Programs\Python\Python35\lib\site-packages\django\core\management\base.py", line 394, in run_from_argv
self.execute(*args, **cmd_options)
File "C:\Users\Acer\AppData\Local\Programs\Python\Python35\lib\site-packages\django\core\management\base.py", line 445, in execute
output = self.handle(*args, **options)
File "C:\Users\Acer\AppData\Local\Programs\Python\Python35\lib\site-packages\django\core\management\commands\migrate.py", line 222, in handle
executor.migrate(targets, plan, fake=fake, fake_initial=fake_initial)
File "C:\Users\Acer\AppData\Local\Programs\Python\Python35\lib\site-packages\django\db\migrations\executor.py", line 110, in migrate
self.apply_migration(states[migration], migration, fake=fake, fake_initial=fake_initial)
File "C:\Users\Acer\AppData\Local\Programs\Python\Python35\lib\site-packages\django\db\migrations\executor.py", line 148, in apply_migration
state = migration.apply(state, schema_editor)
File "C:\Users\Acer\AppData\Local\Programs\Python\Python35\lib\site-packages\django\db\migrations\migration.py", line 115, in apply
operation.database_forwards(self.app_label, schema_editor, old_state, project_state)
File "C:\Users\Acer\AppData\Local\Programs\Python\Python35\lib\site-packages\django\db\migrations\operations\fields.py", line 201, in database_forwards
schema_editor.alter_field(from_model, from_field, to_field)
File "C:\Users\Acer\AppData\Local\Programs\Python\Python35\lib\site-packages\django\db\backends\base\schema.py", line 484, in alter_field
old_db_params, new_db_params, strict)
File "C:\Users\Acer\AppData\Local\Programs\Python\Python35\lib\site-packages\django\db\backends\base\schema.py", line 636, in _alter_field
params,
File "C:\Users\Acer\AppData\Local\Programs\Python\Python35\lib\site-packages\django\db\backends\base\schema.py", line 111, in execute
cursor.execute(sql, params)
File "C:\Users\Acer\AppData\Local\Programs\Python\Python35\lib\site-packages\django\db\backends\utils.py", line 79, in execute
return super(CursorDebugWrapper, self).execute(sql, params)
File "C:\Users\Acer\AppData\Local\Programs\Python\Python35\lib\site-packages\django\db\backends\utils.py", line 64, in execute
return self.cursor.execute(sql, params)
File "C:\Users\Acer\AppData\Local\Programs\Python\Python35\lib\site-packages\django\db\utils.py", line 98, in __exit__
six.reraise(dj_exc_type, dj_exc_value, traceback)
File "C:\Users\Acer\AppData\Local\Programs\Python\Python35\lib\site-packages\django\utils\six.py", line 685, in reraise
raise value.with_traceback(tb)
File "C:\Users\Acer\AppData\Local\Programs\Python\Python35\lib\site-packages\django\db\backends\utils.py", line 64, in execute
return self.cursor.execute(sql, params)
File "C:\Users\Acer\AppData\Local\Programs\Python\Python35\lib\site-packages\django\db\backends\mysql\base.py", line 124, in execute
return self.cursor.execute(query, args)
File "C:\Users\Acer\AppData\Local\Programs\Python\Python35\lib\site-packages\pymysql\cursors.py", line 166, in execute
result = self._query(query)
File "C:\Users\Acer\AppData\Local\Programs\Python\Python35\lib\site-packages\pymysql\cursors.py", line 322, in _query
conn.query(q)
File "C:\Users\Acer\AppData\Local\Programs\Python\Python35\lib\site-packages\pymysql\connections.py", line 835, in query
self._affected_rows = self._read_query_result(unbuffered=unbuffered)
File "C:\Users\Acer\AppData\Local\Programs\Python\Python35\lib\site-packages\pymysql\connections.py", line 1019, in _read_query_result
result.read()
File "C:\Users\Acer\AppData\Local\Programs\Python\Python35\lib\site-packages\pymysql\connections.py", line 1302, in read
first_packet = self.connection._read_packet()
File "C:\Users\Acer\AppData\Local\Programs\Python\Python35\lib\site-packages\pymysql\connections.py", line 981, in _read_packet
packet.check_error()
File "C:\Users\Acer\AppData\Local\Programs\Python\Python35\lib\site-packages\pymysql\connections.py", line 393, in check_error
err.raise_mysql_exception(self._data)
File "C:\Users\Acer\AppData\Local\Programs\Python\Python35\lib\site-packages\pymysql\err.py", line 107, in raise_mysql_exception
raise errorclass(errno, errval)
django.db.utils.InternalError: (1067, "Invalid default value for 'nation'")
Process finished with exit code 1
解决办法:
在该字段增加允许为空