Метод create_or_get в Django - PullRequest
       23

Метод create_or_get в Django

2 голосов
/ 13 февраля 2011

Я искал, был ли у Django какой-то метод create_or_get, но, похоже, у него его нет.Я ищу метод, который заключается в том, что если запись не существует, она создается, но если она завершается, она возвращается.

Я написал один и вот как это выглядит:

def create_or_get(self, url):
    try:
        return Host.objects.create(url = url)
    except IntegrityError, e:
        return Host.objects.get(url = url)

Где я должен разместить этот метод, в модели или в менеджере?

1 Ответ

11 голосов
/ 13 февраля 2011

Уже есть get_or_create , который будет использоваться как:

obj, created = MyModel.objects.get_or_create(keywordArguments)
...