我见过一些示例代码:
def clean_message(self):
message = self.cleaned_data['message']
num_words = len(message.split())
if num_words < 4:
raise forms.ValidationError("Not enough words!")
return message
Run Code Online (Sandbox Code Playgroud)
和一些例子:
def clean(self):
username = self.cleaned_data.get('username')
password = self.cleaned_data.get('password')
...
self.check_for_test_cookie()
return self.cleaned_data
Run Code Online (Sandbox Code Playgroud)
这两者的区别是什么?
Jac*_* M. 28
.get()基本上是从字典中获取元素的快捷方式..get()当我不确定字典中的条目是否存在时,我通常会使用.例如:
>>> cleaned_data = {'username': "bob", 'password': "secret"}
>>> cleaned_data['username']
'bob'
>>> cleaned_data.get('username')
'bob'
>>> cleaned_data['foo']
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
KeyError: 'foo'
>>> cleaned_data.get('foo') # No exception, just get nothing back.
>>> cleaned_data.get('foo', "Sane Default")
'Sane Default'
Run Code Online (Sandbox Code Playgroud)
clean_data 是一个 Python 字典,您可以通过以下方式访问它的值:
\n\n指定 [ ] 之间的键:
\n\n self.cleaned_data[\xe2\x80\x98field\xe2\x80\x99]\nRun Code Online (Sandbox Code Playgroud)\n\n使用 get() 方法:
\n\nself.cleaned_data.get(\xe2\x80\x98field\xe2\x80\x99)\nRun Code Online (Sandbox Code Playgroud)\n\nDjango 中的 clean_data 和 clean_data.get 之间的区别是,如果字典中不存在该键,self.cleaned_data[\xe2\x80\x98field\xe2\x80\x99]则会引发KeyError,而self.cleaned_data.get(\xe2\x80\x98field\xe2\x80\x99)会返回None。
| 归档时间: |
|
| 查看次数: |
15657 次 |
| 最近记录: |