Get_or_create или валидация формы, а затем создание?

Я знаю, что это несколько распространенная вещь, но я пытаюсь понять, как заставить ее работать из примеров.

Я хочу иметь форму, в которой пользователь вводит ID объекта (подобно ISBN для книги). Я хочу проверить, существует ли этот объект в базе данных, если нет, я хочу создать запись на основе некоторой информации, которую я получу из скрипта, используя этот ID.

Кажется, что я могу пойти двумя путями. Я могу использовать get_or_create, или я могу сделать это с очищенными данными в форме, а затем создать.

def form_valid(self, form):
#Can I call a script here and populate the object with that data? How do I get what the user wrote in the form?

    self.object = form.save(commit=False)
    self.object.user = self.request.user
    self.object.save()
    return HttpResponseRedirect(self.get_success_url())

Другой альтернативой было бы использование get_or_create, где мне это определить? В представлении?

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

Вернуться на верх