在创建具有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关系?
答案 0 :(得分:0)
事实证明,问题出在我看来是如何处理数据的。我在做:
data = request.POST.dict()
form = PersonForm(data)
但是我应该做的:
form = PersonForm(data=request.POST)
由于向字典的转换采用第一个值。