我有一个 choiceField
,可以创建一个带有一些选项的选择字段。就像这样:
forms.py
class NewForm(forms.Form):
title = forms.CharField(max_length=69)
parent = forms.ChoiceField(choices = CHOICE)
但是我希望能够在没有预定义元组的情况下创建选项(这是ChoiceField
所要求的)。 基本上,我需要访问request.user以根据每个用户填充某些选项标签,但我不知道有没有办法在forms.Form类中使用请求。
另一种选择是通过以下方式预填充NewForm
的实例:
views.py
form = NewForm(initial={'choices': my_actual_choices})
但是我必须添加一个虚拟CHOICE来创建NewForm,而我的_actual_choices似乎无法工作。
我认为第三种解决方法是创建ChoiceField的子类并重新定义save()
,但我不确定如何着手做到这一点。
super()
时,我感到很困惑,但是当我尝试使用它时,我得到了一个错误:name 'self' is not defined。super()
必须在构造函数中。通过查看编辑历史记录,我认为这就是 Surya 的意思,因为super()
最初是构造函数中的最后一行。 - user2233706