我正在使用Flask和Python 3.3,我知道支持仍然是实验性的,但我在尝试测试文件上传时遇到了错误.我正在使用unittest.TestCase并基于我在我尝试的文档中看到的Python 2.7示例
rv = self.app.post('/add', data=dict(
file=(io.StringIO("this is a test"), 'test.pdf'),
), follow_redirects=True)
Run Code Online (Sandbox Code Playgroud)
并得到
TypeError: 'str' does not support the buffer interface
Run Code Online (Sandbox Code Playgroud)
我在io.StringIO周围尝试了一些变化,但找不到任何有用的东西.任何帮助深表感谢!
完整的堆栈跟踪是
Traceback (most recent call last):
File "archive_tests.py", line 44, in test_add_transcript
), follow_redirects=True)
File "/srv/transcript_archive/py3env/lib/python3.3/site-packages/werkzeug/test.py", line 771, in post
return self.open(*args, **kw)
File "/srv/transcript_archive/py3env/lib/python3.3/site-packages/flask/testing.py", line 108, in open
follow_redirects=follow_redirects)
File "/srv/transcript_archive/py3env/lib/python3.3/site-packages/werkzeug/test.py", line 725, in open
environ = args[0].get_environ()
File "/srv/transcript_archive/py3env/lib/python3.3/site-packages/werkzeug/test.py", line 535, in get_environ
stream_encode_multipart(values, charset=self.charset)
File "/srv/transcript_archive/py3env/lib/python3.3/site-packages/werkzeug/test.py", line 98, in stream_encode_multipart
write_binary(chunk) …Run Code Online (Sandbox Code Playgroud) 我正在尝试为模板驱动的表单创建自定义验证器,如果在另一个字段中填充了另一个字段则需要,但如果第一个字段为空,则第二个字段也不需要.
按照文档中的(typescript)示例构建自定义验证器指令,我可以在字段上运行它,并将其传递给另一个字段的名称.现在这是我的问题......
如果在字段1中输入值并且我检查字段2是否为空,如何在字段2上设置"无效"?(我意识到我可以访问它的AbstractControl).
如果我自己在字段2上设置了"无效",那么在字段2上是否需要单独的验证器才能在填写时删除其无效状态?
或者,当触发第一个字段的验证器时,我应该在字段2上添加内置的"必需"验证器(如果是这样的话)?
非常感谢任何指针!
我有一个控制器获取用户列表和列出它们的视图,以及一个用于显示和设置它们是否处于活动状态的复选框...
.controller('StaffCtrl', ['StaffService', function(StaffService) {
var self = this;
self.staff = StaffService.query();
self.activeUpdate = function(person){
StaffService.update({id:person.id}, person);
};
}]);
<tr ng-repeat="person in staffCtrl.staff">
<td>{{ person.name_full }} </td>
<td><input type="checkbox" ng-checked="person.active" ng-model="person.active" ng-change="staffCtrl.activeUpdate(person)" ng-true-value="1" ng-false-value="0"></td>
</tr>
Run Code Online (Sandbox Code Playgroud)
单击该复选框一旦触发activeUpdate,就会进行异步调用并更新用户,但在视图中复选标记本身不会从复选框中消失(在最新的Chrome和Firefox中).如果我现在再次单击它,复选标记将消失并且activeUpdate不会被调用.如果我再次单击,则会再次显示检查并且同时进行所有呼叫,始终仅在添加检查时,一次性删除它需要2次点击!
我究竟做错了什么?
更新:人员列表的示例JSON(使用curl查询REST API ...)
[
{
"active": 1,
"id": 1,
"name_first": "Ed",
"name_full": "Tech, Ed",
"name_last": "Tech",
"name_middle": null,
"uri": "/sips/api/staff/1",
"username": "admin"
},
{
"active": 1,
"id": 252,
"name_first": "test",
"name_full": "aatest, test",
"name_last": "aatest",
"name_middle": "something",
"uri": "/sips/api/staff/252", …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用 Go 中的 ldap 重置 MS Active Directory 密码属性。AD 不能很好地发挥作用,ldap.PasswordModifyRequest所以我正在使用ldap.NewModifyRequest. (使用 gopkg.in/ldap.v2)
AD 将接受用引号引起来的密码和 utf16le 编码,在 Python 中我可以使用
unicode_pass = unicode("\"secret\"", "iso-8859-1")
password_value = unicode_pass.encode("utf-16-le")
mod_attrs = [(ldap.MOD_REPLACE, "unicodePwd", [password_value])]
l.modify_s(user_dn, mod_attrs)
Run Code Online (Sandbox Code Playgroud)
我怎样才能在 Go 中做到这一点?使用ldap.NewModifyRequest和Replace我可以更改其他属性,但我需要传递Request []string更新的值,这需要是我的编码密码,并且当我玩...时遇到类型不匹配的utf16.Encode问题
modify := ldap.NewModifyRequest(dn)
modify.Replace("unicodePwd", []string{"encodedsecret"})
Run Code Online (Sandbox Code Playgroud)
谢谢。
angular ×1
angularjs ×1
flask ×1
go ×1
ldap ×1
python ×1
python-3.x ×1
typescript ×1
unit-testing ×1
validation ×1