将字段添加到现有Django模型

Den*_*gan 52 django-models

我有一个小网站,有一些用户,我想在我的一个模型(以及表格)中添加一个字段.问题是syncdb当然不会触及现有的模型,我想弄清楚如何将此字段添加到模型/表中而无需重新填充整个事物.

例:

class Newspaper(models.Model):
    name = models.CharField()

class UserProfile(models.Model):
    user = models.ForeignKey(user, unique=True)
    reads = models.ManyToManyField(Newspaper)
Run Code Online (Sandbox Code Playgroud)

现在,我想blank=TrueNewspaper不破坏用户配置文件的情况下向模型添加URL字段().

有任何想法吗?

Dan*_*man 38

没有内置的方法来做到这一点.但是,有许多第三方项目将为您完成.这两个领头的人被称为Django的进化,虽然有各种各样的人,以及(包括一个我一直在参与,dmigrations).

我肯定会推荐South - 它有许多非常简洁的功能,并且工作得非常好.

  • 你能告诉我们怎么样? (4认同)

Dom*_*ger 18

您可以尝试使用以下命令获取新字段的SQL:

manage.py sql appname
Run Code Online (Sandbox Code Playgroud)

appname您的报纸课程所在的应用程序的名称在哪里.

然后,您可以使用手动向appname_newspaper表中添加字段ALTER TABLE.我不知道直接用Django做这个的方法,因为Django不支持迁移.