我正在尝试为ChoiceField创建一个动态的选择列表,但我似乎无法调用请求.这是代码:
错误:
AttributeError: 'CreationForm' object has no attribute 'request'
Run Code Online (Sandbox Code Playgroud)
形式
class FooForm(forms.Form):
def __init__(self, *args, **kwargs):
super(FooForm, self).__init__(*args, **kwargs)
bars = self.request.session['bars']
foo_list = []
for bar in bars:
foo_list.append((bar['id'], bar['name']),)
self.fields['foo'].choices = foo_list
foo = forms.ChoiceField(choices=foo_list, required=True)
Run Code Online (Sandbox Code Playgroud)
che*_*gat 19
为什么不在实例化表单时从视图中传递选项?
例如
形成:
class FooForm(forms.Form):
def __init__(self, foo_choices, *args, **kwargs):
super(FooForm, self).__init__(*args, **kwargs)
self.fields['foo'].choices = foo_choices
foo = forms.ChoiceField(choices=(), required=True)
Run Code Online (Sandbox Code Playgroud)
视图:
...
bars = request.session['bars']
foo_list = []
for bar in bars:
foo_list.append((bar['id'], bar['name']),)
form = FooForm(foo_list)
...
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
12452 次 |
最近记录: |