Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django 如何从表值初始化ModelMultipleChiceField?_Django_Django Forms - Fatal编程技术网

Django 如何从表值初始化ModelMultipleChiceField?

Django 如何从表值初始化ModelMultipleChiceField?,django,django-forms,Django,Django Forms,Django 1.4,我在管理页面中使用ModelMultipleChiceField,所以我在表单中添加了如下内容 class EmailBatchForm(ModelForm): proposals = forms.ModelMultipleChoiceField(required=False,\ widget=FilteredSelectMultiple("proposals", is_stacked=False),\ queryset=BuyRequest.

Django 1.4,我在管理页面中使用ModelMultipleChiceField,所以我在表单中添加了如下内容

class EmailBatchForm(ModelForm):
   proposals = forms.ModelMultipleChoiceField(required=False,\
      widget=FilteredSelectMultiple("proposals", is_stacked=False),\
      queryset=BuyRequest.objects.all())

def __init__(self, *args, **kwargs):
它使用值字符串保存到表中,如 “[,]”

当我编辑记录时,我需要用保存值填充modelmultipechoicefield,似乎我必须手动设置它

def __init__(self, *args, **kwargs):
    super(EmailBatchForm, self).__init__(*args, **kwargs)
    self.initial['proposals'] = BuyRequest.objects.filter(...)  
我必须给它一个queryset,但是如何用保存的字符串值过滤queryset呢

保存的字符串值只是对象类型和对象名称的一对,似乎它不能唯一地标识每个记录,我认为逗号分隔的对象键更好,但我如何设置它才能这样保存


谢谢

这个小部件是什么?它是由您自己编写的还是由第三方编写的?它是内置的。从django.contrib.admin.widgets导入FilteredSelectMultipleHmm,这不是主题,但请尝试jquery.select2。我知道管理员小部件很好。