0
我按照Django教程4向我的API資源添加權限。 http://www.django-rest-framework.org/tutorial/4-authentication-and-permissions/Django 1.8.3爲現有數據庫添加ForeignKey
我在Postgres中有一個現有的數據庫,我可以使用Django API讀取/寫入數值。現在我想通過User.auth添加權限,這需要在數據庫中添加額外的列。
ProgrammingError at /server/
column server.owner_id does not exist
這是我的服務器型號:瀏覽API時,我得到了以下錯誤
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
了類似的結果 感謝
,您可能想要執行'manage.py migrate' - https://docs.djangoproject.com/en/1.8/topics/migrations/ – miki725
'auth'是你自己定義的一個應用程序,還是你的意思是:'owner = models.ForeignKey('django.contrib.auth.models.User',related_name ='servers')'? – slackmart
auth只是從教程複製/粘貼,我用'django.contrib.auth.models.User',現在我得到:錯誤: api_app.Server.owner:(fields.E300)字段定義與模型' django.contrib.auth.models.User',它可能未安裝,或者是抽象的。 – spicyramen