django = 2.2.3 mariadb
Эта ошибка возникает после импорта модели из существующей базы данных с «inspectdb» и измененными свойствами поля.
class Post(models.Model):
post_id = models.AutoField(primary_key=True)
post_name = models.CharField(max_length=255, blank=True, null=True)
email = models.CharField(max_length=255, blank=True, null=True)
class Rank(models.Model):
rank_id = models.AutoField(primary_key=True)
rank_type = models.IntegerField(blank=True, null=True)
created_at = models.DateTimeField()
# post_id = models.IntegerField(blank=True, null=True)
post_id = models.ForeignKey(Post, on_delete=models.SET_NULL, blank=True, null=True)
Первоначально это было # post_id,но я удалил «managed = False», изменил его на ForeignKey и затем «мигрировал».Насколько я знаю, если "post_id" в модели "Post" имеет значение "primary_key True", он заменяет значение "id" на "post_id".Но «Django» продолжает вызывать «post_id_id».Нет команды для ссылки на post_id_id в другом месте.Если у вас есть решение или что-то, чего мне не хватает, дайте мне несколько советов.
------- Добавить еще после комментариев Даниэля Роузмана --------
class Post(models.Model):
post_id = models.AutoField(primary_key=True)
post_name = models.CharField(max_length=255, blank=True, null=True)
email = models.CharField(max_length=255, blank=True, null=True)
class Gallery(models.Model):
uid = models.AutoField(prymary_key=True)
gallery_name = models.CharField(...)
class Rank(models.Model):
rank_id = models.AutoField(primary_key=True)
rank_type = models.IntegerField(blank=True, null=True)
created_at = models.DateTimeField()
# post_id = models.IntegerField(blank=True, null=True)
post_id = models.ForeignKey(Post, on_delete=models.SET_NULL, blank=True, null=True)
# uid = models.IntegerField(blank=True, null=True)
uid = models.ForeignKey(Gallery, on_delete=models.SET_NULL, blank=True, null=True)