前景提要
models.py class VirtualNode(models.Model): VIRTUAL_STATUS = ( (0, '已停止'), (1, '已启动'), (2, '正在创建'), (3, '创建失败'), ) virtual_id = models.AutoField(verbose_name="虚拟机 ID",primary_key=True) virtual_name = models.CharField(max_length=30,verbose_name="虚拟机名") virtual_ip = models.GenericIPAddressField(verbose_name="虚拟 IP") virtual_cpu = models.IntegerField(verbose_name="虚拟机 cpu(核数)") virtual_mem = models.IntegerField(verbose_name="虚拟机内存(GB)") virtual_disk = models.IntegerField(verbose_name="虚拟机硬盘(GB)") virtual_vmnode = models.ForeignKey(VmNode, verbose_name="所属宿主机") virtual_vlan = models.ForeignKey(VlanInfo,verbose_name="所属 Vlan") project = models.CharField(max_length=30,verbose_name="所属项目",null=True,blank=True) virtual_staus = models.IntegerField(verbose_name='运行状态',choices=VIRTUAL_STATUS,default=0) class Meta: verbose_name = "虚拟机节点" verbose_name_plural = verbose_name forms.py class VirtualNodeForm(forms.ModelForm): class Meta: model = VirtualNode fields = '__all__' vievws.py class VirtualNodeAddView(LoginRequireMixin, View): def get(self, request): pass def post(self, request): virtual_form = VirtualNodeForm(request.POST) if virtual_form.is_valid(): virtual_form.save() return JsonResponse({'status':'success'}) else: msg = virtual_form.errors.values() return JsonResponse({'status':'fail','msg':'虚拟机添加失败:{}'.format(msg)})
前端的表单只会填 6 个字段
其中 virtual_name 、virtual_ip 会根据某些条件算出后自动保存。
那么问题来了
在 views.py 里面怎么将 virtual_name virtual_ip ,回填到 virtual_form 里,否在在下面的校验无法通过。