Джанго. Недопустимый аргумент ключевого слова для этой функции. ManyToMany
У меня есть эта ошибка:
"people" - недопустимый аргумент ключевого слова для этой функции
class Passage(models.Model):
name= models.CharField(max_length = 255)
who = models.ForeignKey(UserProfil)
class UserPassage(models.Model):
passage = models.ForeignKey(Passage)
people = models.ManyToManyField(UserProfil, null=True)
class UserProfil(models.Model):
user = models.OneToOneField(User)
name = models.CharField(max_length=50)
Я пытаюсь:
def join(request):
user = request.user
user_profil = UserProfil.objects.get(user=user)
passage = Passage.objects.get(id=2)
#line with error
up = UserPassage.objects.create(people= user_profil, passage=passage)
return render_to_response('thanks.html')
Как это сделать правильно? Спасибо!
Ответы
Ответ 1
Вам нужно сохранить/создать объект, прежде чем добавлять ManyToMany
отношения:
up = UserPassage.objects.create(passage=passage)
up.people.add(user_profil)
ManyToMany
отношения не сохраняются как столбцы в вашей таблице. Прочтите первый ответ здесь для хорошего объяснения:
Поле Django ManyToMany не создано в модели
@DanielRoseman: Поскольку ManyToMany не является полем, по крайней мере, не тот, который существует как столбец базы данных. Это отношения со связующим столом. Вы обнаружите, что была создана таблица с именем myapp_teacher_subjects с внешними ключами как для преподавателя, так и для предметов.