我有一个名为Contexts
的Django模型,该模型本质上是一个包含用户列表的组。我还有一个名为UserProperty
的模型,其中包含一些用户信息。
class Contexts(models.Model):
context_name = models.CharField(max_length=50)
context_description = models.TextField()
users = models.ManyToManyField(UserProperty , related_name='context_users')
def getUserImagePath(instance,filename):
return "/static/images/%s_%s"% (str(time()).replace('.','_'),filename)
class UserProperty(models.Model):
username = models.CharField(max_length=255, null=False)
pic = models.ImageField(upload_to=getUserImagePath, default="/static/images/user.png" ,null=True, blank=True)
org = models.CharField(max_length=255, null=True)
当我使用django manage.py
运行迁移时,这在我的本地系统中可以正常工作。但是由于某种原因,在服务器中,我无法运行迁移,因此我必须在postgres中手动定义模型(服务器使用django _ postgres)。这就是我所做的
CREATE TABLE webhook_contexts(id integer, context_name character varying(100), context_description character varying(100), users text [], FOREIGN KEY (users) REFERENCES webhook_userproperty);
我不确定确切如何在postgres中复制它。对于users
模型中的Contexts
字段,我做了models.ManyToManyField(UserProperty , related_name='context_users')
,所以我假设users
必须是数组在包含引用表UserProperty
的字段的postgres中,即username
,pic
,org
。所以我这样做
.., users text [], FOREIGN KEY (users) REFERENCES webhook_userproperty)
但是我得到这个错误
ERROR: there is no primary key for referenced table "webhook_userproperty"
但是我确实为django视为主键的webhook_userproperty定义了一个id
。然后为什么会出现此错误?我的表定义是否错误?