при создании объекта
TypeError: Direct assignment to the forward side of a many-to-many set is prohibited. Use players.set() instead.
Создавал так
game = Game.objects.create(players=User.objects.all())
Я так понимаю, ошибка говорит о том, что при создании нельзя указать м2м сразу в параметрах метода, а надо сделать так:
game = Game.objects.create()
game.players.set(User.objects.all())
game.save()
?
да, сейв не обязательно, сет устанавливает, если нужно только добавить к имеющимся - эдд
То есть нет способа указать при создании в параметрах??
нет, у тебя при создании еще нет объекта, для того чтобы к нему что-то привязать
Странно, ведь могла быть такая логика, что если м2м филд заполнен, то в пост сейве он обрабатывается, если пре сейв прошел
у тебя нет id пока ты не создал объект, если нет id то и положить в промежуточную таблицу нечего
game = Game(players=User.objects.all())
о, сейчас попробую. Спасибо!
нет, так не сработает
Обсуждают сегодня