2010-05-03 91 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