Django表单未渲染ModelChoiceField的查询集

0 投票
1 回答
877 浏览
提问于 2025-04-15 15:43

我有一个这样的ModelForm:

class AttendanceForm(forms.ModelForm):
    def __init__(self, *args, **kwargs):
        operation_id = kwargs['operation_id']
        del kwargs['operation_id']
        super(AttendanceForm, self).__init__(*args, **kwargs)
        self.fields['deployment'].query_set = \
            Deployment.objects.filter(operation__id=operation_id)

    class Meta:
        model = Attendance

当我在命令行中手动创建这个表单(使用manage.py shell)时,

form = AttendanceForm(operation_id=1)
form.fields['deployment'].query_set

它返回了正确的数据集,但当我调用

form.as_p()

时,我却得到了额外的条目,这些条目并不在数据集中?难道Django以某种方式缓存了HTML输出?我查看了源代码,但找不到任何缓存的内容。我到底做错了什么?

1 个回答

4

这个参数是 queryset,而不是 query_set。你可以查看 文档 来了解更多信息。

撰写回答