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

浙公網安備 33010602011771號