Python Django创建了两个模型实例,而不是一个
我正试图学习一些django的基础知识,下面是youtube上的一篇文章,当我尝试使用表单创建一些模型实例时,我得到了一个奇怪的结果。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.
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_这是第一次,它为我做的工作。也许不是那么全面,但无论如何。