django-autocomplete-light无法与autocomplete.ModelSelect2Multiple一起使用

时间:2019-03-21 22:28:47

标签: python django autocomplete django-autocomplete-light

在创建具有ManyToManyField的模型时,遵循tutorial

class Country(models.Model):
    name = models.CharField(max_length=200)
    def __str__(self):
        return self.name

class Person(models.Model):
    visited_countries = models.ManyToManyField(Country)

然后使用ModelSelect2Multiple小部件呈现表单:

widgets = {
    'visited_countries': autocomplete.ModelSelect2Multiple(
        url='country-autocomplete')
}

提交的数据作为单个值而不是数组输入,因此Person对象永远不会在表单保存中创建。

有没有办法使它作为数组进入并适当地创建ManyToMany关系?

1 个答案:

答案 0 :(得分:0)

事实证明,问题出在我看来是如何处理数据的。我在做:

data = request.POST.dict()
form = PersonForm(data)

但是我应该做的:

form = PersonForm(data=request.POST)

由于向字典的转换采用第一个值。