django更新m2m字段

Mar*_*oni 2 django django-forms

我有一个模型服务和一个名为Service的ModelForm,我用它来添加和更新服务模型.该模型如下所示:

class Service(models.Model):
    categories = models.ManyToManyField(Category)
Run Code Online (Sandbox Code Playgroud)

"类别"字段显示为标记,允许多个选择.当我添加新记录时,它运行良好,但是当我更新它时,即使我选择了多个类别,也只会在request.POST ['categories']上显示一个服务.

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

u'categories': [u'3', u'4', u'2']
Run Code Online (Sandbox Code Playgroud)

我尝试调用request._get_post()并且它只返回1个类别,因此request.POST ['categories']仅返回1.任何知道发生了什么以及如何解决它的人?

Dan*_*man 6

你可能想用

request.POST.getlist('categories')
Run Code Online (Sandbox Code Playgroud)

这将返回该表单字段的所有选定值.