假设我有这个model.py:
class Order(models.Model):
delivery = models.BooleanField()
我有这个表单。py:
class OrderForm(ModelForm):
class Meta:
model = Order
fields = ["delivery"]
我有这个views.py:
def get_order(request):
if request.method == "POST":
form = OrderForm(request.POST)
if form.is_valid():
order_instance = Order(form.cleaned_data["delivery"])
order_instance.save()
return HttpResponseRedirect("/end")
else:
form = OrderForm()
return render(request, "forms/test.html", {"form": form})
HTML页面显示表单页面
有了这段代码,我的程序会告诉我,他不高兴,因为我给了“交货”字段“null”,因为Django自动为每个模型创建了一个“id”字段,所以他希望我给他“id”和“交货”字段
“id”字段应该是自动递增的。这是我的主键。但就形式而言,它似乎不起作用。是否有一种方法可以只指定传递,并让自动增量为id执行任务
id字段的自动递增不起作用,因为您没有保存从表单检索的对象。尝试使用
order_instance.save()
。另见documentation如果需要django模板上的表单,请添加上下文字典
在else语句之后添加此项
您是否在admin.py文件中注册了该模型?如果没有,请转到你的应用程序文件夹,找到admin.py并执行以下操作:
这样做,让我知道你的问题是否解决了。通常django会自动将id字段添加到模型中
相关问题 更多 >
编程相关推荐