2010-05-03 4 views
2

У меня есть служба модели и ModelForm с именем Service, которую я использую для добавления и обновления модели сервиса. Модель выглядит так:Обновление 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

Можете ли вы предоставить подробную информацию о виджетах, которые предоставляют несколько вариантов в качестве поля тега? возможно, это работает неправильно ... –

+0

его использует виджет по умолчанию django для отношений ManyToMany, который отображается как выбранный тег. – Marconi

ответ

6

Вы, вероятно, хотите использовать

request.POST.getlist('categories') 

который будет возвращать все выбранные значения для этого поля формы.

+0

работает как шарм! ура! ; D – Marconi

Смежные вопросы