2017-04-03 113 views
0

我將系統的django版本從1.6.10升級到1.8.16以進行測試。 在版本之前,我使用South進行遷移。 所以,我按照'https://docs.djangoproject.com/en/1.7/topics/migrations/#upgrading-from-south'這個文檔。Django makemigrations每次都會更改'auth.user'

我的問題是每個makemigrations都檢查相同的字段,然後創建遷移文件。 該字段是'auth.User'外鍵字段。像user = models.ForeignKey('auth.User')

這裏是我對這個問題的截圖。

enter image description here

enter image description here

這對於外鍵字段的示例代碼。

cancelled_by = models.ForeignKey(
    'auth.User', 
    verbose_name=_("Cancelled by"), 
    related_name='project_cancel', 
    blank=True, 
    null=True 
) 

我該如何解決這個問題?

編輯: 這是我在所有遷移後由makemigrations創建的遷移文件。

class Migration(migrations.Migration): 

dependencies = [ 
    ('meeting', '0003_meeting_proposal'), 
] 

operations = [ 
    migrations.AlterField(
     model_name='meeting', 
     name='manager', 
     field=models.ForeignKey(verbose_name='Manager', blank=True, to=settings.AUTH_USER_MODEL, null=True), 
    ), 
] 
+0

您是否在每次makemigration後運行「遷移」? – morinx

+0

@morinx是的。只是遷移。我應該假裝? – beCurious

+0

我會先刪除最近創建的遷移文件,然後再次嘗試makemigration – morinx

回答

0

我會先刪除最近創建的遷移文件,然後再次嘗試makemigration。

刪除遷移文件是一種常見的解決方案,因爲無論您的文件夾中有什麼更改,Django都足夠聰明,可以輕鬆地重新創建它們。

你也可以僞造這些遷移,但我更願意保持我的遷移文件夾乾淨整潔。

相關問題