gpt4 book ai didi

python - 动态填充的 Django 字段不显示选择

转载 作者:太空宇宙 更新时间:2023-11-03 21:18:27 24 4
gpt4 key购买 nike

我想从存储过程动态填充 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)。而且您无法将 Field 类型分配给 choices,这是没有意义的。

试试这个(而不是for o in results循环):

results = c.fetchall()
self.fields['plot_claim_type'] = forms.MultipleChoiceField(choices=(
(o[0], str(o[1])) for o in results))

关于python - 动态填充的 Django 字段不显示选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54506118/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com