我的model.py文件是
from django.db import models
class Book(models.Model):
book_id=models.AutoField(primary_key=True,unique=True)
book_name=models.CharField(max_length=30)
author_name=models.CharField(max_length=30)
publisher_name=models.CharField(max_length=40)
def __unicode__(self):
return "%d %s %s %s" % (self.book_id,self.book_name, self.author_name,self.publisher_name)
class Author(models.Model):
author_id=models.AutoField(primary_key=True)
first_name = models.CharField(max_length=30)
last_name = models.CharField(max_length=40)
email = models.EmailField()
book=models.ForeignKey(Book)
def __unicode__(self):
return u'%d %s %s' % (self.author_id,self.first_name, self.last_name)
for" class Book"我已经使用manage.py syncdb
在mysql中创建了表。但我正在使用名为"作者"的新表来更新数据库。我需要执行相同的过程。因为我试图以相同的方式执行后者但是不在数据库中创建表。
需要你的帮助。
答案 0 :(得分:2)
syncdb
应该创建新指定的表;如果没有创建Author
,那是因为它没有以有效的方式编码。注意该行
age=int
导致语法错误;你应该用这种方式指定integer field:
age=models.IntegerField()
但是,最好让Django South处理与数据库迁移相关的任何事情。
答案 1 :(得分:1)
`python syncdb` should not create any changes in the existing table
使用南迁移概念。运行以下命令
python manage.py migrate
将在模型中进行更改。