Как я могу указать на существующую запись в отношении многих ко многим? - PullRequest
2 голосов
/ 05 февраля 2012

У меня проблемы с двойными записями в моей базе данных django и надеюсь на вашу помощь. Допустим, у меня есть две таблицы (person, car), которые объединены через поле «многие ко многим». Каждая новая запись содержит одного человека и, скажем, их три любимых автомобиля. Каждый человек уникален, машины нет. Теперь, прежде чем добавить автомобиль, я хочу проверить, есть ли указанный автомобиль уже в таблице car (то есть кому-то еще это нравится) Если это так, не добавляйте новую запись автомобиля, а ссылку на существующую запись. Это то, что я до сих пор:

newPerson = project.models.Person.objects.create(…)

for i in range(len(cars)):
    newCar = project.models.Car.objects.create(car=cars[i])
    newPerson.cars.add(newCar)

Как мне убедиться, что машина не введена дважды и person по-прежнему указывает на правильные машины?

1 Ответ

0 голосов
/ 05 февраля 2012

Вы можете использовать get_or_create для вставки, только если объект не существует.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...