在Django ModelForm中,我想将CharField显示为具有已定义选项的Select Field

时间:2016-06-02 22:52:50

标签: python django django-forms

我正在尝试按照Django网站上的文档覆盖表单的默认格式。我已经尝试了许多解决方案(所有解决方案都给出了错误)。未评论的部分可以工作但只是呈现一个没有任何选择的选择框。能不能让我知道我做错了什么?

def get_site_geographies():
    return Site.objects.values_list('site_geography', flat=True).distinct()

class SiteFilterForm(forms.ModelForm):
    class Meta:
        model = Site
        fields = ['site_geography', 'site_region', 'site_name']
        # field_classes = {
        #     'site_geography': forms.ChoiceField(choices=get_site_geographies())
        # }
        widgets = {
            'site_geography': forms.Select
        # widgets = {
        #    'site_geography': forms.ChoiceField(choices=get_site_geographies())
        # }

在models.py中,这是我所指的相关模型字段:

class Site (models.Model):
    site_name = models.CharField(max_length=255)
    site_geography = models.CharField(max_length=255)
    site_region = models.CharField(max_length=255, blank=True)

1 个答案:

答案 0 :(得分:1)

选项选项需要迭代。 2元组的列表或元组,格式为:

sub3

因此,您需要迭代您的值并创建此格式。