- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个包含几种不同形式的 View 。第一个表单有一个搜索字段,它填充了一个多项选择字段,当用户在搜索字段中输入他们的查询时,将发送一个 AJAX 调用以获取与查询匹配的所有记录。然后用户从第一个多项选择字段中选择选项并单击“添加”将它们移动到不同的多选框
这工作正常,但是当表单提交时,我收到一条错误消息“选择有效选项。1 不是可用选项之一。”。在收到表单 init 中的参数后,我尝试设置选项,但这似乎不起作用。
我的表格:
class SiteCoordinatorForm(forms.ModelForm):
selected_studies = forms.MultipleChoiceField(required = False)
site = forms.ChoiceField(required = False)
studies = forms.MultipleChoiceField(required = False)
study_search = forms.CharField(max_length = 50, required = False)
def __init__(self, *args, **kwargs):
super(SiteCoordinatorForm, self).__init__(*args, **kwargs)
if args:
study_list = []
query_dict = args[0]
self.fields['selected_studies'].choices = [(int(x), x) for x in query_dict.getlist('selected_studies')]
self.fields['site'].choices = [(x.pk, "%s (%s)" % (x.primary_name, x.primary_number)) for x in Site.objects.all().order_by('primary_name')]
class Meta:
model = SiteCoordinator
exclude = ('studies', 'site', 'selected_studies')
我填充框的 AJAX 函数:
def search_studies(request):
return_data = {}
studies = []
make_query = lambda terms, fieldname: reduce(lambda x, y: x & Q(**{fieldname + '__icontains': y}), terms, Q())
if 'search_text' in request.POST:
terms = request.POST['search_text'].split()
for rec in Study.objects.filter(make_query(terms, 'name')):
studies.append({
'study': {'id': rec.id, 'name': rec.name, 'number': rec.id}
})
response = {'status': 'success', 'count': len(studies), 'studies': studies}
return HttpResponse(simplejson.dumps(response), mimetype="application/json")
填充 MultiSelectBox 的函数:
function show_results(data, status_code, request){
recs = data.studies;
var select_box = document.getElementById('id_studies');
select_box.options.length = 0;
for (var index = 0; index < recs.length; index ++){
select_box.options[index] = new Option(recs[index].study.name,
recs[index].study.id,
false, false);
}
}
然后 JQuery 移动选项:
$('#add').click(function() {
$('#id_studies option:selected').remove().appendTo('#id_selected_studies');
return false;
});
$('#remove').click(function() {
$('#id_selected_studies option:selected').remove().appendTo('#id_studies');
return false;
});
最佳答案
很明显,我们不想验证 MultipleChoiceField
但确实想要 MultipleSelectWidget
所以解决方案只是将字段更改为
studies = forms.CharField(widget=forms.SelectMultiple)
并在
中做你自己的验证def clean_studies(self):
...
关于python - 验证动态设置的 MultipleChoiceField,该字段最初为空?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7192540/
我有一个 Django ModelForm,它通过一个模型公开与多对多关系相对应的多项选择字段,该模型将选择(文档列表)的 order 作为额外属性。在前端,该字段显示为两个与管理中类似的多选字段,一
这里显示了一个多项选择字段: ratesheets = serializers.MultipleChoiceField(choices=RATESHEET_CHOICES, allow_blank=
我在 django 中有一个表单: country=forms.MultipleChoiceField(choices=lista_tari, widget=forms.CheckboxSel
我正在为一家拥有多个地点的公司创建在线职位申请。我希望申请人能够选择代表他们想要申请的每个商店(可以是多个)的复选框。我对于出于可扩展性目的对这些进行硬编码犹豫不决,因此我希望创建 2 个模型(我有更
我在表单中使用 MultipleChoiceField。我想将所有选定的值添加到数据库中,但我使用的下一个代码仅添加用户选择的最后一个值。我在我的 View 中尝试创建多个数字对象。我哪里做错了? 模
我有一个名为“服务”的字段。它存储代表公司提供的服务的整数列表(1=会计,2=人力资源等)。将列表保存到“服务”字段后,我希望能够将其作为“初始”值传递给表单,以便用户可以查看他们之前选择的选项。 什
我有一个类表单,其中包含 forms.MultipleChoiceField。 我能够渲染它并显示所有选择/突出显示的选项,但我想要的是预先突出显示的选项。因此,用户可以在提交表单时取消选择选项或保持
假设我有以下模型 class Application(models.Model): occupation = models.TextField() 和表格 class ApplicationF
我有这个表格: class PasswordForm(forms.Form): CHOICES=[('uppercase','Uppercase'), ('lowerc
假设我有以下模型 class Application(models.Model): occupation = models.TextField() 和表格 class ApplicationF
我有一个包含几种不同形式的 View 。第一个表单有一个搜索字段,它填充了一个多项选择字段,当用户在搜索字段中输入他们的查询时,将发送一个 AJAX 调用以获取与查询匹配的所有记录。然后用户从第一个多
如何从表单中获取选择字段值而不是键? 我有一个表单,让用户可以为公司选择一些用户的电子邮件。例如,我有一个这样的表单(模型表单的原因是它在一个表单集中——但现在这并不重要): class Contac
假设我有如下定义的选择: choices = (('1','a'), ('2','b'), ('3','c')) 以及在 MultipleChoiceFie
我在表单中使用 MultipleChoiceField。它向我显示了带有复选框的 REQUIREMENTS_CHOICES 列表,用户可以在其中选择新需求并将其添加到数据库中。是否可以禁用数据库中已有
我想创建一个设置页面,用户可以在其中选择他们拥有的多个技能值。它将有一个主要类别,然后是子类别。我需要将它们保存到我的数据库中,这样我就可以查询它们并再次展示他们选择的技能组合。 我知道如何创建 Mu
我无法在管理员的 ModelForm 中继承之前选择的项目。我想使用 forms.CheckboxSelectMultiple 小部件,因为这是此用例中最直接的 UI。它的工作原理是在保存时存储值。但
我有一个包含 2 个 MultipleChoiceField 和 CheckboxSelectMultiple 小部件的表单。 在模板中呈现时,复选框在每个选项的左侧都有一个“要点”。 我认为这与呈现
我正在尝试在 Django 中保存一个 MultipleChoiceField。模型.py choices_for_field = (('A','A'), ('B','B'),
我正在尝试在 Django 中保存一个 MultipleChoiceField。模型.py choices_for_field = (('A','A'), ('B','B'),
我有以下 Django 形式: class SpecifyColumnsForm(forms.Form): columns = forms.MultipleChoiceField(requir
我是一名优秀的程序员,十分优秀!