-1
[OSQA>ユーザー設定]の管理パネルで1つのチェックボックスを変更したいのですが、機械化されたWebフォームを提出するとTextareaControlの内容を追加文字で破棄します。python mechanizeはTextareaControlの内容を修復します
だから、>>> import mechanize
>>> mech = mechanize.Browser()
>>> mech.open('http://example.com/account/signin/')
>>> mech.select_form(nr=2)
>>> mech["username"] = 'user'
>>> mech["password"] = 'pass'
>>> mech.open('http://example.com/admin/settings/users/')
>>> for el in mech.forms():
... print el
...
<POST http://example.com/admin/settings/users/ multipart/form-data
<HiddenControl(csrfmiddlewaretoken=XxWchtzV5oR6ezkObhnk4nzIemTc8aDC) (readonly)>
<TextControl(MIN_USERNAME_LENGTH=3)>
<TextareaControl(RESERVED_USERNAMES=testing, this)> # << HERE
<CheckboxControl(TRUNCATE_LONG_USERNAMES=[*on])>
<CheckboxControl(SHOW_USER_ACCEPT_RATE=[*on])>
<TextControl(FREEZE_ACCEPT_RATE_FOR=admin)>
<SubmitControl(submit=Save) (readonly)>>
>>> mech.select_form(nr=0)
>>> print mech["RESERVED_USERNAMES"]
... testing, this
私も任意のフィールドを変更することなく、今それを提出...
>>> results = mech.submit()
... TextareaControlの内容は次のようになります。
>>> mech.open('http://example.com/admin/settings/users/')
>>> mech.select_form(nr=0)
>>> print mech["RESERVED_USERNAMES"]
... t, ,, , e, ,, , s, ,, , t, ,, , i, ,, , n, ,, , g, ,, , ,, ,, , , ,, , t, ,, , h, ,, , i, ,, , s