2016-08-11 7 views
0

ので:製品はTemplateProductから継承しないようにモデルを継承していないときに、Djangoの変更をどのように移行しますか?以下のような私は2つのモデルがあり、1等移行して別の、セットアップからデータベースを継承する場合

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

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

は、次に、どのように私はそれを作るためにDBを移行するのでしょうか?私はだけではなく、これらのモデルたいと言う:

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」を削除すると、Iを次のエラーが表示されます。

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を実行してモデルを追加してください。

これは最も洗練された解決策ではないかもしれません。

関連する問題