iFo*_*sts 3 python django django-forms
我是Django的新手,我正在尝试在我的网站上使用django-friends.
这是来自django-friends的表格:
>>> from django import forms
>>> class UserForm(forms.Form):
...
... def __init__(self, user=None, *args, **kwargs):
... self.user = user
... super(UserForm, self).__init__(*args, **kwargs)
...
>>> f = UserForm({})
>>> f.is_bound
False
Run Code Online (Sandbox Code Playgroud)
该文档说"传递一个空字典创建一个带有空数据的绑定表单",但为什么结果是未绑定的(f.is_bound是False)?
非常感谢!
Yuj*_*ita 10
你的__init__陈述吞没了第一个论点.
user=None从你的init语句中删除,也许从它中取出它kwargs.
class UserForm(forms.Form):
def __init__(self, *args, **kwargs):
self.user = kwargs.pop('user', None)
super(UserForm, self).__init__(*args, **kwargs)
# now the form is actually receiving your first argument: args[0] == {}
Run Code Online (Sandbox Code Playgroud)
这里发生的是UserForm使用第一个参数(user)来初始化它的内部状态,因此它不会传递任何东西forms.Form.要获得预期的行为,您可以传递一个额外的参数:
>>> f = UserForm(None, {})
>>> f.is_bound
True
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1722 次 |
| 最近记录: |