получать ошибкуЭкземпляр не сохранен.Используйте bulk = False или сначала сохраните объект - PullRequest
0 голосов
/ 01 апреля 2019

Я пытаюсь создать функциональность в django.Я использую следующую модель.Я хотел бы проверить, что это работает на оболочке django manage.py.Когда я выполняю соответствующий импорт и запускаю

user1.following.add(Follower(following=user2))

, я получаю следующую ошибку

Экземпляр не сохранен.Сначала используйте bulk = False или сохраните объект.

в чем причина этого?

models.py

class Follower(models.Model):
    follower = models.ForeignKey(User, related_name='following',on_delete=models.PROTECT)
    following = models.ForeignKey(User, related_name='followers',on_delete=models.PROTECT)

    class Meta:
        unique_together = ('follower', 'following')

    def __unicode__(self):
        return u'%s follows %s' % (self.follower, self.following)

1 Ответ

1 голос
/ 01 апреля 2019

Я не знаю, чего вы ожидали. Как говорится в сообщении об ошибке, вы не сохранили этот объект Follower.

Но, похоже, это не совсем верный способ сделать это. Я думаю вы просто хотите создать объект Follower с обоими пользователями:

Follower.objects.create(follower=user1, following=user2)

, который напрямую добавляет его с обеих сторон.

Еще лучше, полностью удалить модель Follower и объявить отношение ManyToMany для пользователя обратно в «self», с симметричным = False.

...