我在客户端中有一个名为note的新字段,它与Notes具有一对一的关系。
我希望能够在mysql的Client表下添加note列。当我使用python manage.py syncdb
时,它不起作用。所以我想知道如何将mysql中的一对一字段添加到现有表中。
models.py
class Note(models.Model):
datetime = models.DateTimeField(default=datetime.now)
user = models.ForeignKey(User)
note = models.TextField()
def __unicode__(self):
return unicode(self.name)
class Client(models.Model):
note = models.OneToOneField(Note) # new
def __unicode__(self)
return unicode(self.user)
答案 0 :(得分:1)
Syncdb不会更改您的数据库,以免破坏您的数据。请参阅django book。
您可以手动更新数据库,也可以使用自动迁移工具(风险自负),例如South。
编辑: 在django book中,您还可以阅读有关手动更改的详细说明以及SQL示例。其他有用的信息可以在MySQL manual。
中找到答案 1 :(得分:0)
您没有说出应用程序名称是什么,所以我认为它是fooapp。
首先看一下SQL Django用于创建相关表格的内容:
python manage.py sql fooapp
对于其他字段,请运行此sql命令:
ALTER TABLE fooapp_client ADD ...
其中...是您在“manage.py sql fooapp”
的输出中看到的字段声明请记住还要在“manage.py sql fooapp”输出中执行对新字段进行操作的任何索引/约束命令。