您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

Django ModelChoiceField:过滤查询集并将默认值设置为对象

Django ModelChoiceField:过滤查询集并将默认值设置为对象

覆盖init方法并接受新的关键字参数

class AccountDetailsForm(forms.Form):
    ...
    adminuser = forms.ModelChoiceField(queryset=User.objects.all())
    def __init__(self, *args, **kwargs):
        accountid = kwargs.pop('accountid', None)
        super(AccountDetailsForm, self).__init__(*args, **kwargs)

        if accountid:
            self.fields['adminuser'].queryset = User.objects.filter(account=accountid)

form = AccountDetailsForm(accountid=3)

你也总是可以在视图中手动设置选项。

form = AccountDetailsForm()
form.fields['adminuser'].queryset = User.objects.filter(account=accountid)

警告:你不会通过将字典传递给示例中的形式来设置认值。

你实际上是在创建绑定表,可能触发验证和所有爵士乐。

要设置认值,请使用initials参数。

form = AccountDetailsForm(initial={'adminuser':'3'})
Go 2022/1/1 18:22:32 有447人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶