django更新m2m字段

django更新m2m字段,django,django-forms,Django,Django Forms,我有一个模型服务和一个名为service的ModelForm,用于添加和更新服务模型。模型如下所示: class Service(models.Model): categories = models.ManyToManyField(Category) “类别”字段显示为允许多个选择的标记。当我添加新记录时效果很好,但当我更新它时,请求上只显示一个服务。即使我选择了多个类别,也会发布['categories'] 我尝试转储请求对象,我可以看到类别显示如下内容: u'categories'

我有一个模型服务和一个名为service的ModelForm,用于添加和更新服务模型。模型如下所示:

class Service(models.Model):
    categories = models.ManyToManyField(Category)
“类别”字段显示为允许多个选择的标记。当我添加新记录时效果很好,但当我更新它时,请求上只显示一个服务。即使我选择了多个类别,也会发布['categories']

我尝试转储请求对象,我可以看到类别显示如下内容:

u'categories': [u'3', u'4', u'2']

我尝试调用请求。_get_post()但它只返回1个类别,因此请求。post['categories']只返回1个类别。有谁知道发生了什么以及如何修复它吗?

您可能想使用

request.POST.getlist('categories')

它将返回该表单字段的所有选定值。

能否提供将多项选择呈现为标记字段的小部件的详细信息?也许这工作不正常…它使用django的默认小部件处理许多关系,显示为select标记。