Джанго: правильный способ использования модели, дубликаты! - PullRequest
0 голосов
/ 12 марта 2010

У меня вопрос о правильном, наилучшем способе управления моделью. Я относительный новичок в Django, поэтому я думаю, что мне нужно прочитать больше документов, учебных пособий и т. Д. (Предложения для этого были бы классными!).

Во всяком случае, это мой вопрос:

У меня есть веб-сканер python, который "связан" с моделью django.

Сканирование выполняется один раз в день, поэтому очень часто можно найти "дубликаты". Чтобы избежать дубликатов, я делаю это:

cars = Car.Objects.filter(name=crawledItem['name'])
if len(cars) > 0:
    #object already exists, update it
    car = cars[0]
else:
    car = Car()

#some non-relevant code here

car.save()

Я хочу знать, если это правильный / правильный способ сделать это или любой другой «автоматический» способ сделать это.

Можно также поместить логику в конструктор Car (), я должен это сделать?

Большое спасибо!

1 Ответ

6 голосов
/ 13 марта 2010

Используйте метод get_or_create() менеджера, затем измените возвращенный экземпляр по мере необходимости.

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