Ошибка модели Django: «Ошибка типа:« xxx »- недопустимый аргумент ключевого слова для этой функции - PullRequest
9 голосов
/ 30 декабря 2011

Я получаю ошибку:

TypeError: 'person' is an invalid keyword argument for this function

Моя модель:

class Investment(models.Model):
company = models.ManyToManyField("Company", related_name ="Investments_company")
financial_org = models.ManyToManyField("Financial_org", related_name ="Investments_financial_org")
person = models.ManyToManyField("Person", related_name ="Investments_person")

Мой тест (который выдает ошибку):

investment1 = Investment(company = [], financial_org = financial1, person = [])

1 Ответ

27 голосов
/ 30 декабря 2011
  1. Создание экземпляра вашей модели без многих ко многим , investment1 = Investment()

  2. Сохранить вашу модель , investment1.save()

  3. Добавить много ко многим , есть несколько способов сделать это как investment1.person.add(person_model) или investment1.person.create(name='foo')

Вы не можете использовать отношение ManyToMany до тех пор, пока модель не будет сохранена , это связано с тем, что для строки в таблице отношений ManyToMany требуется pk моделей с двух сторон отношений.

...