1

我的 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)

对于“类书”,我已经在 MySQL 中使用manage.py syncdb. 但是我正在使用名为“Author”的新表更新数据库,我需要执行相同操作的过程。因为我试图以相同的方式执行后者,但未在数据库中创建表。

4

2 回答 2

2

syncdb应该创建新指定的表;如果Author没有被创建,那是因为它没有以有效的方式编码。请注意,该行

age=int

导致语法错误;你应该这样指定一个整数字段

age=models.IntegerField()

但是,最好让Django South处理与数据库迁移相关的任何事情。

于 2013-03-01T12:51:02.037 回答
1
`python syncdb` should not create any changes in the existing table

使用南迁移概念。运行以下命令

python manage.py migrate

将在模型中进行更改。

于 2013-04-05T09:50:13.793 回答