21 forms组件-参数initial&instance应用

简单来讲:
如果你想传入前端的页面中附带值,那么在实例化forms中:

form = SecondModelForm(data=request.POST, instance=permission_obj)
return render(request, 'rbac/change.html', {'form': form})

该参数,会把所有的值都会传入到form中


如果你想传入前端的页面中附带某一个值,那么在实例化forms中:

form = SecondModelForm(initial={"字段名": 值})
return render(request, 'rbac/change.html', {'form': form})

如果在保存数据库中,需要默认传入一个值,那么form.save()之前做:

second_menu_obj = models.Permission.objects.filter(id=second_menu_id).first()
if not second_menu_obj:
    return HttpResponse("二级菜单不存在")

form.instance.pid = second_menu_obj
form.save()

如果想在编辑过程中,更新某一个字段,需要:

queryset = models.Level.objects.filter(id=pk, active=1).first()
form = LevelModelForm(data=request.POST, instance=queryset)
if not form.is_valid():
	return render(request, 'form.html', {'form': form})

form.save()
posted @ 2022-09-01 15:25  角角边  Views(71)  Comments(0Edit  收藏  举报