javascript - 在选择一项
问题描述
“我正在制作一个查询模型表单。我已经创建了 datalist 小部件。现在我想要的是,在从 datalist 中选择项目时,应该在第一个 datalist 中选择的项目的基础上再出现一个 datalist。”从下面假设我选择美国,那么美国的一些城市应该出现在新的数据列表中,或者如果我选择中国,中国的一些城市应该出现。
表格.py
from django import forms
from .fields import ListTextWidget
class FormForm(forms.Form):
data = ('Mexico', 'USA', 'India', 'France')
char_field_with_list = forms.CharField(required=True)
char_field_with = forms.CharField(required=True,widget = ListTextWidget(data_list=data,name='data'))
def __init__(self, *args, **kwargs):
_country_list = kwargs.pop('data_list', None)
super(FormForm, self).__init__(*args, **kwargs)
self.fields['char_field_with_list'].widget = ListTextWidget(data_list=_country_list, name='country-list')
field.py(创建小部件的地方)来自 django 导入表单
class ListTextWidget(forms.TextInput):
def __init__(self, data_list, name, *args, **kwargs):
super(ListTextWidget, self).__init__(*args, **kwargs)
self._name = name
self._list = data_list
self.attrs.update({'list':'list__%s' % self._name})
def render(self, name, value, attrs=None, renderer=None):
text_html = super(ListTextWidget, self).render(name, value, attrs=attrs)
data_list = '<datalist id="list__%s">' % self._name
for item in self._list:
data_list += '<option value="%s">' % item
data_list += '</datalist>'
return (text_html + data_list)
视图.py
from django.shortcuts import render
# Create your views here.
from .forms import FormForm
def country_form(request):
# instead of hardcoding a list you could make a query of a model, as long as
# it has a __str__() method you should be able to display it.
country_list = ('Mexico', 'USA', 'China', 'France')
form = FormForm(data_list=country_list)
return render(request, 'inquiry/inquiry.html', {
'form': form
})
解决方案
推荐阅读
- asp.net-mvc - 如何使用 .Contains 和 Int DataType
- html - 当有 22 个或更多元素时,为什么我的数组被转换为对象?(节点)
- bash - makefile中的for循环不起作用
- python - Python 作为字典或 JSON 登录文件
- sql-server - How to fill DataTable from multiple tables?
- grails - grails 3.3 detachedcriteria appears to give incorrect result
- javascript - 空检查对象不起作用
- c++ - c++迭代器类型
- angular - Angular:如何从不同模块中的另一个组件调用组件方法
- java - 如何将子类成员的类型视为它自己的类型而不是 Java 中的父类型?