我遵循Django教程4,为我的API资源添加权限。 http://www.django-rest-framework.org/tutorial/4-authentication-and-permissions/
我在Postgres中有一个现有的数据库,我可以使用Django API读取/写入值。现在我想通过User.auth添加权限,这需要在DB中添加额外的列。浏览API时出现以下错误:
ProgrammingError at /server/
column server.owner_id does not exist
这是我的服务器型号:
class Server(models.Model):
discovered = models.BooleanField()
status = models.SmallIntegerField()
serialnumber = models.CharField(max_length=100, null=True)
hostname = models.CharField(max_length=250)
description = models.CharField(max_length=250, blank=True, null=True)
created = models.DateTimeField(auto_now_add=True)
fk_server_model = models.ForeignKey('ServerModel', db_column='fk_server_model')
fk_licensing = models.ForeignKey(Licensing, db_column='fk_licensing', blank=True, null=True)
fk_network_services = models.ForeignKey(NetworkServices, db_column='fk_network_services', blank=True, null=True)
fk_network_interfaces = models.ForeignKey(NetworkInterfaces, db_column='fk_network_interfaces', blank=True, null=True)
fk_server_authentication = models.ForeignKey('ServerCredentials', db_column='fk_server_authentication', blank=True, null=True)
owner = models.ForeignKey('auth.User', related_name='servers')
def save(self, *args, **kwargs):
super(Server, self).save(*args, **kwargs)
class Meta:
managed = False
db_table = 'server'
作为本教程的一部分,我希望Django到外键字段 owner_id 但是在执行了以下操作之后:
python manage.py syncdb
我的数据库表服务器没有添加字段而不是与Auth_user表的外键关系。让Django自动生成数据库中的外键的正确方法是什么?我试过了:
python manage.py migrate
有类似的结果 感谢
答案 0 :(得分:0)
我最终在DB中手动添加了字段。 owner_id在我的表中键入int4并创建FK引用