2016-03-03 112 views
1

我刚刚有这个错误,我试图在论坛上类似的错误帮助调试,但没有任何工作出来呢。 我想这是从我的模型有关模型领域,以及它们如何返回。 ,特别分别是Booking和Room模型下的Book_id和Room_Number。 任何帮助表示赞赏。 NB:我改变了我的模型字段和值误差弹出每当我运行manage.py迁移无法弄清楚如何调试:ValueError:无效文字为int()与基10:'

Models.py

class Room(models.Model): 
    Hostel = models.ForeignKey(List) 
    Room_Number = models.CharField(max_length=3, default="", primary_key=True) 
    Total_rooms = models.IntegerField(blank=True) 
    Price_single = models.IntegerField(blank=True) 
    Price_double = models.IntegerField(blank=True) 

    def __str__(self): 
     return self.Room_Number 


class Booking(models.Model): 
    Book_id = models.IntegerField(default="") 
    Hostel = models.ForeignKey(List) 
    Room_Number = models.ForeignKey(Room) 
    Room_capacity = models.CharField(max_length=1, choices=[('S', 'Single'), ('D', 'Double')], default="") 
    Booked_by = models.ForeignKey(Student, default="") 
    Booked_on = models.DateTimeField(auto_now_add=True) 

    def __str__(self): 
     return "%s, booked a '%s' room in '%s' '%s' at '%s'" % (
      self.Booked_by, self.Room_capacity, self.Hostel, self.Room_Number, self.Booked_on) 

在控制台中显示:

Running migrations: 
    Rendering model states... DONE 
    Applying Gyobera.0011_booking_book_id...Traceback (most recent call last): 
    File "C:\Program Files (x86)\JetBrains\PyCharm 4.5.2\helpers\pycharm\django_manage.py", line 41, in <module> 
    run_module(manage_file, None, '__main__', True) 
    File "C:\Python34\lib\runpy.py", line 182, in run_module 
    return _run_module_code(code, init_globals, run_name, mod_spec) 
    File "C:\Python34\lib\runpy.py", line 96, in _run_module_code 
    mod_name, mod_spec, pkg_name, script_name) 
    File "C:\Python34\lib\runpy.py", line 85, in _run_code 
    exec(code, run_globals) 
    File "C:/Users/Scott Businge/Ewange\manage.py", line 10, in <module> 
    execute_from_command_line(sys.argv) 
    File "C:\Python34\lib\site-packages\django\core\management\__init__.py", line 338, in execute_from_command_line 
    utility.execute() 
    File "C:\Python34\lib\site-packages\django\core\management\__init__.py", line 330, in execute 
    self.fetch_command(subcommand).run_from_argv(self.argv) 
    File "C:\Python34\lib\site-packages\django\core\management\base.py", line 390, in run_from_argv 
    self.execute(*args, **cmd_options) 
    File "C:\Python34\lib\site-packages\django\core\management\base.py", line 441, in execute 
    output = self.handle(*args, **options) 
    File "C:\Python34\lib\site-packages\django\core\management\commands\migrate.py", line 221, in handle 
    executor.migrate(targets, plan, fake=fake, fake_initial=fake_initial) 
    File "C:\Python34\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:\Python34\lib\site-packages\django\db\migrations\executor.py", line 147, in apply_migration 
    state = migration.apply(state, schema_editor) 
    File "C:\Python34\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:\Python34\lib\site-packages\django\db\migrations\operations\fields.py", line 62, in database_forwards 
    field, 
    File "C:\Python34\lib\site-packages\django\db\backends\sqlite3\schema.py", line 179, in add_field 
    self._remake_table(model, create_fields=[field]) 
    File "C:\Python34\lib\site-packages\django\db\backends\sqlite3\schema.py", line 77, in _remake_table 
    self.effective_default(field) 
    File "C:\Python34\lib\site-packages\django\db\backends\base\schema.py", line 211, in effective_default 
    default = field.get_db_prep_save(default, self.connection) 
    File "C:\Python34\lib\site-packages\django\db\models\fields\__init__.py", line 710, in get_db_prep_save 
    prepared=False) 
    File "C:\Python34\lib\site-packages\django\db\models\fields\__init__.py", line 702, in get_db_prep_value 
    value = self.get_prep_value(value) 
    File "C:\Python34\lib\site-packages\django\db\models\fields\__init__.py", line 1868, in get_prep_value 
    return int(value) 
ValueError: invalid literal for int() with base 10: '' 
+0

谢谢你们,我已经做到了,但仍是值误差保持 –

回答

1

bookid有默认为空字符串,

Book_id = models.IntegerField(default="") 

你可能想要t ø要么允许空值或默认的book_id的默认值设置为一个数字

Book_id = models.IntegerField(default=1) 
+0

(虽然'_id'那种让我觉得你在这种情况下,它应该是一个外键反正一本书模型.. ) – Sayse

+0

这同样适用于'booked_by' – Sayse

0

更改为一个整数值。例如:

Book_id = models.IntegerField(default=0) 
相关问题