データベースにはすでに4人が登録されていますが、モデルにまだリレーション属性がないときに登録されました。それらを追加したとき、私はこのモデルを手に入れました:
class Person(User):
type = models.BooleanField()
avatar = models.ImageField(blank=True)
second_name = models.CharField(max_length=30, blank=True, default='')
birthday = models.DateField(blank=True, default=None)
country = models.CharField(max_length=30, blank=True, default='')
city = models.CharField(max_length=30, blank=True, default='')
school = models.CharField(max_length=60, blank=True, default='')
university = models.CharField(max_length=60, blank=True, default='')
work_place = models.CharField(max_length=60, blank=True, default='')
profession = models.CharField(max_length=60, blank=True, default='')
phone = models.CharField(max_length=30, blank=True, default='')
about = models.TextField(blank=True, default='')
latitude = models.FloatField(blank=True, default=-1)
longitude = models.FloatField(blank=True, default=-1)
friends = models.ForeignKey(
'self',
related_name='+',
)
black_list = models.ForeignKey(
'self',
related_name='+',
)
dialogues = models.ManyToManyField(
'dialogues.Dialogue',
)
news = models.OneToOneField(
'news.NewsList',
)
wall = models.OneToOneField(
'blogs.Blog',
)
しかし、このモデルを移行すると、次のエラーが発生します:django.db.utils.IntegrityError:UNIQUE制約に失敗しました:persons_person.wall_id。
複数のブログを書くことができるためBlog
、モデルとの関係を変更する必要がありPerson
ます。したがって、1Mの関係になります。したがって、ブログモデルでは、ForeignKey
toPerson
モデルを定義する必要があります。
person = models.ForeignKey(
'person.Person',
related_name='walls'
)
また、wall
フィールドはPerson
モデルから削除されますが、人物オブジェクトからは、関連する名前を使用してブログにアクセスできるようになりますwalls
。
あなたの持っていることの必要性がある場合Person
にBlog
1-1との関係を、そしてあなたは、この制約に従わないデータベースからレコードを削除する必要があります。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加