I'm trying to learn some django basics following one turorial from youtube and have got strange result when I try to create some model instances using forms. Django implicitly creates two duplicate instances. This is my view:
from django.shortcuts import render
from .forms import ProductModelForm
from .models import Product
def create(request):
form = ProductModelForm(request.POST or None)
if form.is_valid():
obj = form.save(commit=False)
data = form.cleaned_data
Product.objects.create(title_text=data.get("title_text"))
obj.save()
return render(request, "test_app/create.html", {"form": form})
Form:
from django import forms
from .models import Product
class ProductModelForm(forms.ModelForm):
class Meta:
model = Product
fields = [
"title_text",
]
And a template:
{% block content %}
<form action="." method="post">{% csrf_token %}
{{ form }}
<button type="submit">Save Model</button>
</form>
{% endblock %}
Thanks in advance.
obj = form.save(commit=False)
this create one instance first.
obj.save()
And then this creates another instance.