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()