首页 > 解决方案 > 编辑时未显示 Django ModelChoiceField 初始值

问题描述

我有一个表单“ModelChoiceField”表单字段,添加数据时它工作正常!但是如何在编辑表单时检索保存的数据数据库以被选中?

form = AddForm(owner=pk, instance=data, initial={'course': data.course})

我什至尝试设置初始值,但仍然没有达到选定的值来显示!

class AddForm(ModelForm):
    def __init__(self, owner, *args, **kwargs):
        super(AddForm, self).__init__(*args, **kwargs)
        self.fields['course'].queryset = Faculty.objects.filter(owner=owner)

请注意,所选值已正确保存在数据库中!但它没有出现

标签: django

解决方案


您应该owner从 kwargs 中获取,如下例所示。

def __init__(self, *args, **kwargs):
    owner = kwargs.pop('owner')
    super().__init__(*args, **kwargs)
    self.fields['course'].queryset = Faculty.objects.filter(owner=owner)

推荐阅读