2016-08-11 16 views
0

如果我有另外兩個型號,一個繼承並設置了數據庫遷移等等,像這樣:當我取消一個模型時,如何在Django中遷移更改?

class TemplateProduct(models.Model): 
    type = models.CharField(max_length=20) 

class Product(TemplateProduct): 
    name = models.CharField(max_length=80) 

那麼我將如何遷移分貝讓這個產品不從TemplateProduct繼承?說我只是想這些模型來代替:

class TemplateProduct(models.Model): 
    type = models.CharField(max_length=20) 

class Product(models.Model): 
    name = models.CharField(max_length=80) 

當我嘗試遷移此,我得到以下錯誤:

django.db.utils.ProgrammingError: column "templateproduct_ptr_id" of relation "product_product" does not exist 

,然後當我從遷移上的刪除「templateproduct_ptr_id」,我得到以下錯誤:

django.core.exceptions.FieldError: Local field u'id' in class 'Product' clashes with field of similar name from base class 'TemplateProduct' 

正如標題所示:如何在我取消熱模型時遷移Django中的更改?

+0

你是否運行過'''python manage.py makemigrations''' - 如果是的話 - 那是什麼產生的? –

+0

我跑了它,它說它是刪除template_product_id_ptr並添加一個id。 – Cephlin

回答

0

所以我的解決方案是刪除這兩個模型。然後python manage.py makemigrations --merge,然後我回到我想要的方式,最後再次運行python manage.py makemigrations --merge添加模型回來。

這可能不是最優雅的解決方案,但它的工作。

相關問題