2016-04-20 12 views
-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 

答えて

0

機械化デバッグしようとしていたが、運がない。

私は追加(attrs={"checked":"checked"})osqa/forum/settings/users.py

REQUIRE_EMAIL_VALIDATION_TO = Setting('REQUIRE_EMAIL_VALIDATION_TO', [], USERS_SET, dict(
label = _("Require email validation to..."), 
help_text = _("Which actions in this site, users without a valid email will be prevented from doing."), 
widget=CheckboxSelectMultiple(attrs={"checked":"checked"}), 
choices=(("ask", _("ask questions")), ("answer", _("provide answers")), ("comment", _("make comments")), ("flag", _("report posts"))), 
required=False, 
)) 

にインストールする前にOSQAの設定を変更することで、それらのチェックボックスを選択してしまった、これは私が上がっていたものではありませんが、私の問題を解決します。

関連する問題