如何在djang中向表插入列

2024-04-19 20:28:57 发布

您现在位置:Python中文网/ 问答频道 /正文

我是python新手,我在型号.py像这样:

class book(models.Model):
    name = models.CharField(max_length = 20)
    grade = models.CharField(max_length = 20, blank = True, null = True)
    def __unicode__(self):
        return self.name +self.grade + self.nick

现在,当我重写代码时,我想在table book中插入一列:

class book(models.Model):
    name = models.CharField(max_length = 20)
    grade = models.CharField(max_length = 20, blank = True, null = True)
    nick = models.CharField(max_length = 20)  
    def __unicode__(self):
        return self.name +self.grade + self.nick

但是,当我运行命令:python管理.pysyncdb正常 但是,当我跑的时候:

from db.models import book book.objects.all() here is wrong,

OperationalError: no such column: db_book.nick

我真的不知道怎么改,顺便问一下,怎么把整张桌子都扔了?就像MySQL一样? 谢谢


Tags: nameselftruemodelmodelsdefnulllength
2条回答

你需要告诉你的数据库你的模型每次修改都会改变。你应该学会如何使用South。South允许在Django模型中创建迁移,而不是编写alter table ...South为您跟踪更改并将其应用于数据库。这里有一个很好的教程http://south.readthedocs.org/en/latest/tutorial/part1.html

无论如何,如果您是从Django开始的,那么在django1.7中,模式迁移是Django固有的,您不需要第三方应用程序。也许值得去看看https://docs.djangoproject.com/en/dev/topics/migrations/

如果该表没有任何重要数据,或者您只是在测试,那么您可以从数据库中删除该表。然后运行python manage.py syncdb

相关问题 更多 >