【问题标题】:Accessing ModelChoiceField queryset from custom widget从自定义小部件访问 ModelChoiceField 查询集
【发布时间】:2013-01-09 13:11:04
【问题描述】:

我有一个具有 ModelChoiceField 的表单。我创建了一个用于处理 ModelChoiceFields 的自定义小部件,该小部件扩展了 forms.TextInput,所以:

class SelectWidget(forms.TextInput):

    def __init__(self, attrs):
        super(SelectWidget, self).__init__(attrs)

    def render(self, name, value, attrs=None):
        value = "" if value is None else value

        # html stuff here

        return html_stuff

在表格上:

class Form(forms.ModelForm)
    address = forms.ModelChoiceField(queryset=models.Address.objects.all(),
                                     widget=SelectWidget(attrs={}))

我了解,当我提交表单时,它将根据提供给 ModelChoiceField 的查询集验证在 SelectWidget 文本输入中输入的内容,这正是我想要的。

我的问题是:在我覆盖渲染方法的 SelectWidget 中,如何访问传递给 ModelChoiceField 的任何查询集,以便根据小部件的“值”属性(如果有)检查它?

【问题讨论】:

    标签: django django-widget


    【解决方案1】:

    您可以在您的自定义选择小部件中访问self.choices,这是一个ModelChoiceIterator 对象

    【讨论】:

      猜你喜欢
      • 2016-08-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-15
      • 2018-02-01
      相关资源
      最近更新 更多