2010-05-03 95 views
2

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

class Service(models.Model): 
    categories = models.ManyToManyField(Category) 

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

我试图倾倒请求对象,我可以看到的是,类别被示出是这样的:

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

我试图调用request._get_post()和它没有返回只有1类,因此,该请求。 POST ['categories']只返回1.任何知道发生了什么以及如何解决它的人?

+0

您能否提供将多个选项渲染为标记字段的小部件的详细信息?也许这是不正确的工作... – 2010-05-03 14:47:34

+0

它使用django的ManyToMany关系的默认小部件,它显示为一个选择标记。 – Marconi 2010-05-04 15:40:18

回答

6

你可能想使用

request.POST.getlist('categories') 

将返回所有选择值适用于表单字段。

+0

作品魅力!干杯! ; d – Marconi 2010-05-04 15:42:15