Django 表单中的动态下拉列表
Dynamic drop-down list in Django forms
我正在尝试在我的 Django 帐户注册表单中添加一个动态下拉列表。
forms.py:
class CompanySignupForm(account.forms.SignupForm):
first_name = forms.CharField(
label="First Name",
max_length=30,
widget=forms.TextInput(),
required=True)
last_name = forms.CharField(
label="Last Name",
max_length=30,
widget=forms.TextInput(),
required=True)
company = forms.CharField(
label="Company Name",
max_length=60,
widget=forms.TextInput(),
required=True)
models.py:
class EmployerProfile(models.Model):
user = models.OneToOneField(settings.AUTH_USER_MODEL)
first_name = models.CharField(max_length=30)
last_name = models.CharField(max_length=30)
company = models.CharField(max_length=40)
def __unicode__(self):
return self.company
问题是,如果我希望字段 "company" 是一个包含大约 10,000 个条目的下拉列表,最好的方法是什么?我应该使用 JS 和 JSON 数据吗? jQuery 用于自动完成?我只想以最有效的方式去做。
您确定要包含 10,000 个条目的下拉列表吗?是这样吗,在forms.py
:
class CompanySignupForm(forms.ModelForm):
company = forms.ChoiceField(choices=["10,000", "entries", "here"])
https://docs.djangoproject.com/es/1.9/ref/forms/fields/#choicefield
但我会选择自动完成字段,使用 http://django-autocomplete-light.readthedocs.org/en/master/
我正在尝试在我的 Django 帐户注册表单中添加一个动态下拉列表。
forms.py:
class CompanySignupForm(account.forms.SignupForm):
first_name = forms.CharField(
label="First Name",
max_length=30,
widget=forms.TextInput(),
required=True)
last_name = forms.CharField(
label="Last Name",
max_length=30,
widget=forms.TextInput(),
required=True)
company = forms.CharField(
label="Company Name",
max_length=60,
widget=forms.TextInput(),
required=True)
models.py:
class EmployerProfile(models.Model):
user = models.OneToOneField(settings.AUTH_USER_MODEL)
first_name = models.CharField(max_length=30)
last_name = models.CharField(max_length=30)
company = models.CharField(max_length=40)
def __unicode__(self):
return self.company
问题是,如果我希望字段 "company" 是一个包含大约 10,000 个条目的下拉列表,最好的方法是什么?我应该使用 JS 和 JSON 数据吗? jQuery 用于自动完成?我只想以最有效的方式去做。
您确定要包含 10,000 个条目的下拉列表吗?是这样吗,在forms.py
:
class CompanySignupForm(forms.ModelForm):
company = forms.ChoiceField(choices=["10,000", "entries", "here"])
https://docs.djangoproject.com/es/1.9/ref/forms/fields/#choicefield
但我会选择自动完成字段,使用 http://django-autocomplete-light.readthedocs.org/en/master/