2015-07-11 26 views
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 

了類似的結果 感謝

+1

,您可能想要執行'manage.py migrate' - https://docs.djangoproject.com/en/1.8/topics/migrations/ – miki725

+1

'auth'是你自己定義的一個應用程序,還是你的意思是:'owner = models.ForeignKey('django.contrib.auth.models.User',related_name ='servers')'? – slackmart

+0

auth只是從教程複製/粘貼,我用'django.contrib.auth.models.User',現在我得到:錯誤: api_app.Server.owner:(fields.E300)字段定義與模型' django.contrib.auth.models.User',它可能未安裝,或者是抽象的。 – spicyramen

回答

0

我結束了在DB手動添加領域。 owner_id類型int4到我的表中,並在最近版本的Django中創建FK參考

相關問題