在后期django视图上保存自定义多个表单
我正在用许多字段填写自定义表单 型号.PY在后期django视图上保存自定义多个表单,django,Django,我正在用许多字段填写自定义表单 型号.PY class Module(models.Model): class Meta(): db_table = "module" verbose_name = "Module" verbose_name_plural = "Modules" module_title = models.CharField( verbose_name="Module title",
class Module(models.Model):
class Meta():
db_table = "module"
verbose_name = "Module"
verbose_name_plural = "Modules"
module_title = models.CharField(
verbose_name="Module title",
max_length=200,
blank=False,
null=False,
)
module_menu_item = models.ManyToManyField(
'mega_admin.MenuItem',
blank=True,
null=True,
)
module_menu_item = request.POST.getlist('menu_item_menu', '')
save_module_form = ModuleForm(request.POST)
if save_module_form.is_valid():
module = save_module_form.save(commit=False)
module.module_title = module_title
module.module_menu_item = module_menu_item
save_module_form.save()
视图.PY
class Module(models.Model):
class Meta():
db_table = "module"
verbose_name = "Module"
verbose_name_plural = "Modules"
module_title = models.CharField(
verbose_name="Module title",
max_length=200,
blank=False,
null=False,
)
module_menu_item = models.ManyToManyField(
'mega_admin.MenuItem',
blank=True,
null=True,
)
module_menu_item = request.POST.getlist('menu_item_menu', '')
save_module_form = ModuleForm(request.POST)
if save_module_form.is_valid():
module = save_module_form.save(commit=False)
module.module_title = module_title
module.module_menu_item = module_menu_item
save_module_form.save()
这样我可以成功地添加新模块,但是没有创建模块菜单项
在POST上,值为:
module_menu_item_id {…}
0 28
1 22
2 27
3 25
因此,在一篇文章中,需要为模块和菜单项创建多个关系
注意:我没有在模板中使用默认的基于模型的表单您需要调用
save\u m2m
方法来保存相关项目:
if save_module_form.is_valid():
module = save_module_form.save(commit=False)
module.module_title = module_title
module.module_menu_item = module_menu_item
module.save()
save_module_form.save_m2m()
请参阅中的详细信息