python - django-autocomplete-light 不适用于 autocomplete.ModelSelect2Multiple
问题描述
当我使用 ManyToManyField 创建模型时,按照教程进行操作:
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
对象永远不会在表单保存时创建。
有没有办法让它作为一个数组进入并适当地创建多对多关系?
解决方案
事实证明,问题在于我如何处理我认为的数据。我在做:
data = request.POST.dict()
form = PersonForm(data)
但是我应该这样做:
form = PersonForm(data=request.POST)
由于转换为字典采用第一个值。
推荐阅读
- python - 如何在 python 中的 models.py 中包含非 DB 字段?
- java - Keycloak 用户存储 SPI - 为什么 getUserById 在从 UserLookupProvider 接口的 getUserByUsername 后调用 4 次
- python - Matplotlib 蜡烛彼此靠得太近
- python - 如何从需要登录的网站上抓取信息
- javascript - 正则表达式获取字符串JS之间的单词
- python - 将多个嵌套字典作为单行放入 Dataframe
- c# - 第一次尝试自动完成
- android - 尽管使用了不同的 ID,但无法启动 Pending Intent 的多个实例
- c - 内存如何存储有符号和无符号字符
- java - 服务网关的单点故障 (Netflix Zuul)