0
我有兩個型號:AlterField上自動生成的遷移_ptr場引起FieldError
# app1
class ParentModel(models.Model):
# some fields
現在,在另一個應用程序,我有子模型:
# app2
from app1.models import ParentModel
class ChildModel(ParentModel):
# some fields here too
在初始遷移app2
Django的創建OneToOneField
與parent_link=True
命名爲parentmodel_ptr
。
現在我想改變產生的場,讓我們說IntegerField
本次車展,所以我創建了這個業務的新移民:
class Migration(migrations.Migration):
dependencies = [
('app2', '0001_initial'),
]
operations = [
migrations.AlterField(
'childmodel',
'parentmodel_ptr',
models.IntegerField(null=True, blank=True)
)
]
試圖遷移,我得到了一個異常
django.core.exceptions.FieldError: Auto-generated field 'parentmodel_ptr' in class 'ChildModel' for parent_link to base class 'ParentModel' clashes with declared field of the same name.
所以是甚至有可能做到這一點?
其實,你說得對。在ModelBase上花費整晚黑客,我終於意識到,最好的方法是創建明確的OneToOneField,並在數據遷移中將_ptr遷移到它。來自auth包的用戶方式。所以我認爲你的回答贊同這個想法:)謝謝! – valignatev