Django 使用数据库中的数据呈现复选框SelectMultiple表单。[初始值是来自DB的查询集]

Django 使用数据库中的数据呈现复选框SelectMultiple表单。[初始值是来自DB的查询集],django,django-models,django-forms,django-views,Django,Django Models,Django Forms,Django Views,我有一个名为DemoForm的表单,它与modelDemo class Demo(models.Model): user = models.ForeignKey(User, on_delete=models.CASCADE) ans = models.CharField(max_length=1024) 这个表格是 class DemoForm(forms.ModelForm): class Meta: model = Demo exc

我有一个名为
DemoForm
的表单,它与model
Demo

class Demo(models.Model):
    user = models.ForeignKey(User, on_delete=models.CASCADE)
    ans = models.CharField(max_length=1024)

这个表格是

class DemoForm(forms.ModelForm):
    class Meta:
        model = Demo
        exclude = ('user',)
        widgets = {'ans': forms.CheckboxSelectMultiple}

我想使用
queryset
呈现此表单,我尝试了不同的方法,如

form = DemoForm(initial=Love.objects.filter(user=request.user))


<form=GoodForm()  
form.fields["ans"].queryset = Love.objects.filter(user=request.user) >


form=DemoForm(instance=Love.objects.filter(user=request.user)


form=DemoForm(instance=request.user.love_set.all())

form=DemoForm(initial=Love.objects.filter(user=request.user))
form=DemoForm(实例=Love.objects.filter(用户=request.user)
form=DemoForm(instance=request.user.love\u set.all())
有时它会显示
no\u Meta present
,当我使用initial时,它会显示
预期长度2得到1(得到3)


注意-
Love
模型与用户的关联方式与
Demo
与使用
ForeignKey
的用户的关联方式相同。这意味着
Love
模型是
Demo
模型的副本。因此,查询返回嵌套对象

,而不是自定义小部件。您可以尝试ModelMultipleEchoiceField:这可以帮你解决问题:)我如何预填充它?我必须将其转换为列表还是当前查询可以?@Wolph,我如何查询它?我的实现需要
请求
。您只需传递查询集即可。如果您需要根据请求进行更改,您需要覆盖表单的
\uuuuu init\uuuuu
方法来更改FlySet上的查询集,可以吗?这就是我实现的东西。但是有一个新的问题与之相关。