Django 创建两个模型实例而不是一个
Django creates two model instances instead of one
我正在尝试从 youtube 学习一些 django 基础知识,但当我尝试使用表单创建一些模型实例时得到了奇怪的结果。 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})
表格:
from django import forms
from .models import Product
class ProductModelForm(forms.ModelForm):
class Meta:
model = Product
fields = [
"title_text",
]
还有一个模板:
{% block content %}
<form action="." method="post">{% csrf_token %}
{{ form }}
<button type="submit">Save Model</button>
</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)
data = form.cleaned_data
obj.title_text = data.get("title_Text")
obj.save()
我正在尝试从 youtube 学习一些 django 基础知识,但当我尝试使用表单创建一些模型实例时得到了奇怪的结果。 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})
表格:
from django import forms
from .models import Product
class ProductModelForm(forms.ModelForm):
class Meta:
model = Product
fields = [
"title_text",
]
还有一个模板:
{% block content %}
<form action="." method="post">{% csrf_token %}
{{ form }}
<button type="submit">Save Model</button>
</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)
data = form.cleaned_data
obj.title_text = data.get("title_Text")
obj.save()