gpt4 book ai didi

Django动态表单ValidationErorr

转载 作者:行者123 更新时间:2023-12-01 06:07:51 25 4
gpt4 key购买 nike

我正在尝试修改管理 ModelMultipleChoiceField 以便它动态加载数据。

因为我想动态加载数据,所以在创建表单实例时,ModelMultipleChoiceField 的查询集为空,因此在进行表单验证时,django 提示选择无效,因为在查询集中找不到它们。

有什么办法可以解决这个问题吗?

FORM:
class FormName(forms.ModelForm):
dinamic_field = forms.ModelMultipleChoiceField(Entry.objects.none(),widget=
widgets.FilteredSelectMultiple("", False))

class Meta:
model = ModelName
fields = ('dinamic_field',)

class Media:
js = ('jquery.js', 'dinamic_field.js')

查看:

def add(request):
if request.method == 'POST':
form = FormName(request.POST)
if request.is_ajax():
obj = Packages.objects.get(id = form.data['package'])
form.fields['dinamic_field'].queryset = Entry.objects.filter(test__in =obj.all())
return HttpResponse(form['dinamic_field'])
if form.is_valid():
job = form.save()
return HttpResponseRedirect('../../')
else:
form = FormName()

return return render_to_response('/template_name', {'form': 'form'})

最佳答案

您是否尝试过覆盖表单的 __init__() 方法并为字段设置 queryset ?像这样的东西:

class JobForm(forms.ModelForm):
dynamic_field = forms.ModelMultipleChoiceField(Entry.objects.none(),widget=
widgets.FilteredSelectMultiple("", False))

def __init__(self, *args, **kwargs):
super(JobForm, self).__init__(*args, **kwargs)
self.dynamic_field.queryset = Entry.objects.<etc>

关于Django动态表单ValidationErorr,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3606989/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com