Я использую Django ModelForms для создания формы.У меня настроена форма, и она работает нормально.
form = MyForm(data=request.POST)
if form.is_valid():
form.save()
Теперь я хочу, чтобы форма сначала проверила, существует ли идентичная запись.Если это так, я хочу, чтобы он получил идентификатор этого объекта, а если нет, я хочу, чтобы он вставил его в базу данных, а затем дал мне идентификатор этого объекта.Это возможно, используя что-то вроде:
form.get_or_create(data=request.POST)
Я знаю, что мог бы сделать
form = MyForm(instance=object)
при создании формы, но это не сработало бы, так как я все еще хочу иметь случай, когданет экземпляра объекта
edit:
Скажите, что моя модель
class Book(models.Model):
name = models.CharField(max_length=50)
author = models.CharField(max_length=50)
price = models.CharField(max_length=50)
Я хочу форму, которую кто-то может заполнить для хранения книг.Однако, если в базе данных уже есть книга с таким же именем, автором и ценой, я, очевидно, не хочу, чтобы эта запись добавлялась снова, поэтому просто хочу узнать ее идентификатор и не добавлять ее.
Я знаюв Django есть функция;get_or_create, который делает это, но есть ли что-то похожее для форм?или я должен был бы сделать что-то вроде
if form.is_valid():
f = form.save(commit=false)
id = get_or_create(name=f.name, author=f.author, price=f.price)
Спасибо