2014-03-01 21 views
1

我使用南8.4 Django的1.6.1和Python 3.3.2和遇到的南错误引入一个文本框时,模型:南语法错误

sources = models.TextField(default="{'users':0}") 

南高兴地当我用空字符串替换字符串时迁移。 回溯:

Traceback (most recent call last): 
    File "manage.py", line 10, in <module> 
    execute_from_command_line(sys.argv) 
    File "C:\Python33\lib\site-packages\django\core\management\__init__.py", line 399, in execute_from 
_command_line 
    utility.execute() 
    File "C:\Python33\lib\site-packages\django\core\management\__init__.py", line 392, in execute 
    self.fetch_command(subcommand).run_from_argv(self.argv) 
    File "C:\Python33\lib\site-packages\django\core\management\base.py", line 242, in run_from_argv 
    self.execute(*args, **options.__dict__) 
    File "C:\Python33\lib\site-packages\django\core\management\base.py", line 285, in execute 
    output = self.handle(*args, **options) 
    File "C:\Python33\lib\site-packages\south\management\commands\migrate.py", line 111, in handle 
    ignore_ghosts = ignore_ghosts, 
    File "C:\Python33\lib\site-packages\south\migration\__init__.py", line 220, in migrate_app 
    success = migrator.migrate_many(target, workplan, database) 
    File "C:\Python33\lib\site-packages\south\migration\migrators.py", line 254, in migrate_many 
    result = migrator.__class__.migrate_many(migrator, target, migrations, database) 
    File "C:\Python33\lib\site-packages\south\migration\migrators.py", line 329, in migrate_many 
    result = self.migrate(migration, database) 
    File "C:\Python33\lib\site-packages\south\migration\migrators.py", line 133, in migrate 
    result = self.run(migration, database) 
    File "C:\Python33\lib\site-packages\south\migration\migrators.py", line 114, in run 
    return self.run_migration(migration, database) 
    File "C:\Python33\lib\site-packages\south\migration\migrators.py", line 84, in run_migration 
    migration_function() 
    File "C:\Python33\lib\site-packages\south\migration\migrators.py", line 60, in <lambda> 
    return (lambda: direction(orm)) 
    File "C:\Users\Johnson\Documents\Works\Django\timewatch\times\migrations\0007_auto__add_field_acti 
vity_sources.py", line 14, in forwards 
    keep_default=False) 
    File "C:\Python33\lib\site-packages\south\db\sqlite3.py", line 38, in add_column 
    field.column: (self._column_sql_for_create(table_name, name, field, False), field_default) 
    File "C:\Python33\lib\site-packages\south\db\generic.py", line 47, in _cache_clear 
    return func(self, table, *args, **opts) 
    File "C:\Python33\lib\site-packages\south\db\sqlite3.py", line 113, in _remake_table 
    self._copy_data(table_name, temp_name, renames, added) 
    File "C:\Python33\lib\site-packages\south\db\sqlite3.py", line 149, in _copy_data 
    self.quote_name(src), 
    File "C:\Python33\lib\site-packages\south\db\generic.py", line 282, in execute 
    cursor.execute(sql, params) 
    File "C:\Python33\lib\site-packages\django\db\backends\util.py", line 69, in execute 
    return super(CursorDebugWrapper, self).execute(sql, params) 
    File "C:\Python33\lib\site-packages\django\db\backends\util.py", line 53, in execute 
    return self.cursor.execute(sql, params) 
    File "C:\Python33\lib\site-packages\django\db\utils.py", line 99, in __exit__ 
    six.reraise(dj_exc_type, dj_exc_value, traceback) 
    File "C:\Python33\lib\site-packages\django\utils\six.py", line 490, in reraise 
    raise value.with_traceback(tb) 
    File "C:\Python33\lib\site-packages\django\db\backends\util.py", line 53, in execute 
    return self.cursor.execute(sql, params) 
    File "C:\Python33\lib\site-packages\django\db\backends\sqlite3\base.py", line 450, in execute 
    return Database.Cursor.execute(self, query, params) 
django.db.utils.OperationalError: near "':0}'": syntax error 

任何人都知道是什么导致了这个错误?

+0

显示你'迁移forward'功能 –

回答

1

1)'必须转义。

2)我看到你想要在商店JSON存储?因此密钥必须与"报价http://www.w3schools.com/json/json_syntax.asp

因此被引用,我认为这将解决这个问题

sources = models.TextField(default='{"users":0}') 

刚刚更换报价