【问题标题】:what is the best way to write a combo box in django?在 django 中编写组合框的最佳方法是什么?
【发布时间】:2015-01-20 19:21:04
【问题描述】:

我尝试在 django 中制作一个组合框。我只发现用 HTML 来做。是否有基于表单的 django 代码来执行此操作? 例如,我想要一个包含城市的组合框,我可以选择然后选择并点击提交以将城市发送到另一个页面。 谢谢

【问题讨论】:

标签: python html django


【解决方案1】:

如果您有一个静态城市列表,您可以使用ChoiceField 创建一个组合框:

from django import forms

class SelectCityForm(forms.Form):
    CITY_1 = 'city_1'
    CITY_2 = 'city_2'
    CITY_CHOICES = (
        (CITY_1, u"City 1"),
        (CITY_2, u"City 2")
    )
    cities = forms.ChoiceField(choices=CITY_CHOICES)

如果您要将城市保存到数据库中,可以使用ModelChoiceField

class SelectCityForm(forms.Form):
    cities = forms.ModelChoiceField(queryset=City.objects.all())

【讨论】:

  • 为什么要在CITY_CHOICES item tuple 的末尾加一个点?
  • @SergeKishiko 已修复。这是一个错字。谢谢!
  • 神奇的东西!非常感谢!
【解决方案2】:

如果你有一个城市列表,你可以像这样创建一个form

class myForm(forms.Form):
    city_list = ['city1','city2']
    city = forms.ChoiceField(choices=city_list)

但是,如果您的城市与您的模型不同,您可以使用:

class myForm(forms.Form):
    city = forms.ModelChoiceField(queryset=City.objects.all())

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-09-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-28
    • 2017-07-30
    • 1970-01-01
    相关资源
    最近更新 更多