0
我有將項目從django版本1.8.2轉換爲版本1.11的任務。面對一個我無法應付的問題。表格的這種模式,這在1.8.2工作非常出色,停在1.11版本的工作,並以一個錯誤掉出來:從Django 1.8.2到Django的繼承模型1.11
core.CarModel.manufacture: (models.E006) The field 'manufacture' clashes with the field 'manufacture' from model 'core.page'.
顯然,這是由於車型的繼承,因爲該項目是舊的,我可以沒有從根本上改變表格的方案,請告訴我如何擺脫這種情況。 非常感謝您的幫助。
我已複製模型的方案,該方案在1.8.2正常工作和停止工作對1.11:
# -*- coding:utf-8 -*-
from django.db import models
from django.contrib.contenttypes.models import ContentType
class InheritanceCastModel(models.Model):
real_type = models.ForeignKey(ContentType, editable=False)
def save(self, *args, **kwargs):
if not self.id:
self.real_type = self._get_real_type()
super(InheritanceCastModel, self).save(*args, **kwargs)
def _get_real_type(self):
return ContentType.objects.get_for_model(type(self))
def cast(self):
return self.real_type.get_object_for_this_type(pk=self.pk)
class Meta:
abstract = True
class Page(InheritanceCastModel):
title = models.CharField(max_length=512, verbose_name=u'Title', blank=True)
class Manufacture(Page):
ru_title = models.CharField(max_length=128, verbose_name=u'RU Title')
class CarModel(Page):
# here problem:
manufacture = models.ForeignKey(Manufacture, verbose_name=u'Manufacture')
ru_title = models.CharField(max_length=64, verbose_name=u'RU Title')