Python Django创建了两个模型实例,而不是一个

Python Django创建了两个模型实例,而不是一个,python,django,django-forms,django-managers,Python,Django,Django Forms,Django Managers,我正试图学习一些django的基础知识,下面是youtube上的一篇文章,当我尝试使用表单创建一些模型实例时,我得到了一个奇怪的结果。Django隐式创建两个重复实例。 我的看法是: from django.shortcuts import render from .forms import ProductModelForm from .models import Product def create(request): form = ProductModelForm(request.

我正试图学习一些django的基础知识,下面是youtube上的一篇文章,当我尝试使用表单创建一些模型实例时,我得到了一个奇怪的结果。Django隐式创建两个重复实例。 我的看法是:

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})
表格:

和一个模板:

{% block content %}

<form action="." method="post">{% csrf_token %}

    {{ form }}
    <button type="submit">Save Model</button>

</form>

{% endblock %}
{%block content%}
{%csrf_令牌%}
{{form}}
保存模型
{%endblock%}
提前谢谢

obj = form.save(commit=False)
这将首先创建一个实例

obj.save()
然后这将创建另一个实例。

这将创建一个对象

obj = form.save(commit=False) 
obj.save()
data = form.cleaned_data
Product.objects.create(title_text=data.get("title_text"))
这就创建了一个对象

obj = form.save(commit=False) 
obj.save()
data = form.cleaned_data
Product.objects.create(title_text=data.get("title_text"))
试试这个

obj = form.save(commit=False)
data = form.cleaned_data
obj.title_text = data.get("title_Text")
obj.save()

obj=form.save(commit=False
obj.save()
一起创建一个对象。第二个对象由
Product.objects.create创建(title\u text=data.get(“title\u text”))
是的,很有效。谢谢。谢谢。希望再次见到你。@AlexStelmakh是的,这不是正确的答案。接受的答案应该是来自DilIsPickle@gdef_这是第一次,它为我做的工作。也许不是那么全面,但无论如何。