Я учусь использовать формы django, и мне были представлены два способа сохранения информации из формы.Я проверил оба, и оба работают с валидациями, но я не понимал разницу между одним и другим.
Первый использует функции, унаследованные от класса models.Model, используя функцию "objects.create (*)* form.cleaned_data) "и передавая поля формы в качестве параметра.
В приведенном ниже примере я создаю экземпляр класса ProductForm, который наследуется от форм Form.ModelForm, и использую функцию cleaned_data для передачи в качествепараметр.
def product_create_view(request):
form = ProductForm()
if request.method == 'POST':
form = ProductForm(request.POST or None)
if form.is_valid():
**Product.objects.create(**form.cleaned_data)**
form = ProductForm()
data = {}
data['form'] = form
return render(request, 'products/product_create.html', data)
Второй способ вместо использования функции objects.create (** dict) напрямую использует form.save ().
def product_create_view(request):
form = ProductForm()
if request.method == 'POST':
form = ProductForm(request.POST or None)
if form.is_valid():
**form.save()**
form = ProductForm()
data = {}
data['form'] = form
return render(request, 'products/product_create.html', data)
Мне бы хотелосьзнать, что существуют различия между использованием form.save () и Product.objects.create (** dict)