0
で偽:=私は自動的にサブクラスの一つに「FIRST_NAME」と「LAST_NAME」から構成され、フィールド「名前」持っている唯一のサブクラス
from django.db import models
from django.utils.translation import ugettext_lazy as _
class Actor(models.Model):
name = models.CharField(_('name'), max_length=60)
class Company(Actor):
pass
class Person(Actor):
first_name = models.CharField(_('first name'), max_length=30, blank=True)
last_name = models.CharField(_('last name'), max_length=30, blank=True)
email = models.EmailField(_('e-mail address'), unique=True)
def save(self, *args, **kwargs):
if self.first_name or self.last_name:
self.name = (self.first_name + ' ' + self.last_name).strip()
else:
self.name = self.email
super(Person, self).save(*args, **kwargs)
を私は「名前」フィールドを希望ActorモデルとCompanyモデルでは編集可能ですが、Personモデルでは編集できません。どうすればそれを達成できますか?
DjangoはクラスでFieldError(「ローカルフィールド 『名前』を発生させますので、私は人のモデルに
name = models.CharField(_('name'), max_length=60, editable=False)
を追加することにより、ベースから類似した名前のフィールドを持つ「人の衝突をフィールド定義を上書きすることはできませんクラス 'Actor' ")。