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
的表单,它与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
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上的查询集,可以吗?这就是我实现的东西。但是有一个新的问题与之相关。