Python 动态填充的Django字段不显示选项

Python 动态填充的Django字段不显示选项,python,django,Python,Django,我想从存储过程动态填充Django ChoiceField。但是,我无法在Django管理员中显示结果。结果是一片空白。我错过了什么?对不起,如果我问了一个已经回答过的问题。我已经看了又看 class Plot(models.Model): plot_claim_type = models.CharField('Plot Claim Type', max_length=7) class PlotAdminForm(forms.ModelForm): def __init__(s

我想从存储过程动态填充Django ChoiceField。但是,我无法在Django管理员中显示结果。结果是一片空白。我错过了什么?对不起,如果我问了一个已经回答过的问题。我已经看了又看

class Plot(models.Model):
    plot_claim_type = models.CharField('Plot Claim Type', max_length=7)

class PlotAdminForm(forms.ModelForm):
    def __init__(self, *args, **kwargs):
        super(PlotAdminForm, self).__init__(*args, **kwargs)
        c = connection.cursor()
        try:
            c.execute("BEGIN")
            c.callproc("udf_getcodetypes", "1")
            results = c.fetchall()
            for o in results:
                self.base_fields['plot_claim_type'].choices = forms.MultipleChoiceField(choices=(o[0], str(o[1])))
        finally:
            c.close()

@admin.register(Plot)

class PlotAdmin(admin.ModelAdmin):
    form = PlotAdminForm

您在结果中的循环是赋值和重新赋值,因此您只需要一个赋值(最后一个
o
results
中)。您不能将
字段
类型分配给
选项
,这是没有意义的

只需尝试以下操作(而不是在结果中对o执行
循环):


您在结果中的循环是赋值和重新赋值,因此您只需要一个赋值(最后一个
o
results
中)。您不能将
字段
类型分配给
选项
,这是没有意义的

只需尝试以下操作(而不是在结果中对o执行
循环):


您不能将
多回音字段
分配给
选项
。您只需要将其分配给
self.fields['plot\u claim\u type']
。但是您的循环也是错误的,因为您只分配了最后一个
o
,无法将
多回音字段
分配给
选项
。您只需要将其分配给
self.fields['plot\u claim\u type']
。但是您的循环也是错误的,因为您只是分配了最后一个
o
results = c.fetchall()
self.fields['plot_claim_type'] = forms.MultipleChoiceField(choices=(
    (o[0], str(o[1])) for o in results))