我有一个包含M2M关系的模型:
class Plane(models.Model):
...
start_types = models.ManyToManyField(StartType, related_name='planes')
class StartType(models.Model):
...
name = models.CharField(max_length=16, verbose_name=_('Name'))
由此,我生成一个表单,其中start_types字段由选择倍数(select2)表示。 我是手动执行此操作,而不是使用Django表单,因此我不确定如何在Django表单中解决该问题,但是我的问题在于Django代码,因此请耐心等待一下:
将此表单从浏览器填写完毕发送回服务器时,我将执行jQuery PUT AJAX请求。 jQuery看到该值是一个数组,还通过在字段名称之后添加方括号来修改PUT请求中的字段名称,如下所示:start_types[]
我调试了代码,发现django.utils.MultiValueDict
不知道这种编码,并且将为以这种方式编码的数据返回一个空列表。
所以我目前的解决方法是也简单地查询start_types[]
,并且只有当该查询不返回值时,我才使用默认功能(不带花括号)。
这不是我第一次遇到这个问题,所以在这一点上,我认为最好提出以下两个问题: