0

我有一个包含几个 django/python 数据模型和关联的 postgres 数据库表的应用程序。在这种情况下,重要的是UserFeed

我需要在我的 Feed 模型中的列和我的 User 模型中的项目之间创建一对一的关系。如果我从头开始应用程序,我只需user在模型中定义一个属性,Feed如下所示:

from django.contrib.auth.models import User

class Feed(models.Model):
    ...
    user = models.OneToOneField(User)

当然,由于我的应用程序已经运行,我需要根据我的 django/python 数据模型更改使用 SQL 命令修改我的数据库表。

我的问题是,创建一个OneToOneField? 在过去执行 SQL 命令时,我在这里使用了文档:http: //www.djangobook.com/en/2.0/chapter10.html作为指南。但我担心当谈到 OneToOneFields 时我会搞砸一些事情。

djangomanage.py sqlall命令告诉我,我需要一个如下所示的列:

"user_id" integer NOT NULL UNIQUE REFERENCES "auth_user" ("id") DEFERRABLE INITIALLY DEFERRED
4

1 回答 1

0

对于所有遇到类似问题的人......我最终选择了south迁移库。(在某些时候我仍然想学习 SQL 命令)。 去南方上班是相当简单的。

$ pip install south
$ cd [pathtoproject]
$ vim [project]/settings.py

# make sure the following is reflected
INSTALLED_APPS += ('south',) 

$ ./manage.py syncdb
$ ./manage.py convert_to_south [myapp]
$ vim [myapp]/models.py

# make the changes to the data models. 
# south has to be initialized before these changes occur

class Feed(models.Model):
    ...
    user = models.OneToOneField(User)


$ ./manage.py schemamigration [myapp] --auto
于 2013-07-06T02:27:30.020 回答