【发布时间】:2023-03-13 12:44:01
【问题描述】:
我正在尝试批量创建对象空白,但在我填写表格后它只创建一个对象,有人可以帮助我解决我做错了什么吗?
html
{% block content %}
<form class="box" method = "post">
{% csrf_token %}
<h1>Air Ticket Sales</h1>
{{ form }}
batch size:
<input type="number" name="batch" value="{{ batch }}">
<input type="submit" name="" value="Create Blank">
</form>
{% endblock %}
型号
class blank(models.Model):
#an integer field that automatically increments by itself as the object are created
number = models.AutoField(primary_key=True)
type = models.CharField(max_length=50, choices=type_choices, default='green')
is_sold = models.BooleanField(default=False)
is_refunded = models.BooleanField(default=False)
date = models.DateField(auto_now_add=True)
date.editable = True
advisor = models.ForeignKey(
User,
models.SET_NULL,
blank=True,
null=True,
)
查看
def create_blanks(request):
if request.method == 'POST':
#initializes the data from the form to the value form
form = blank_form(data=request.POST)
batch = request.POST.get("batch", "")
if form.is_valid():
for b in batch:
form.save()
return render(request, "create_blanks.html")
else:
return render(request, "create_blanks.html")
else:
form = blank_form
return render(request, "create_blanks.html", {'form':form})
【问题讨论】:
-
呃,你把 same 表单保存了多次...
-
AutoField 不应该自动递增吗?
-
但是对象被赋予了一个主键,因此第二次保存将是一个
UPDATE ...查询。 -
我还能做些什么来保存一个新的吗?
-
再次将主键设置为
None(所以form.instance.None)。但是for b in batch看起来也很奇怪。你可能想要for b in range(int(batch))或类似的东西?
标签: django forms post django-models size