2016-04-20 8 views
-1

Я хочу, чтобы в панели администратора [OSQA> Настройки пользователя] менял один флажок, но когда я отправляю веб-форму с помощью механизации, он клонирует содержимое 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

пытался отладить Mechanize но без везения.

я закончил с отбором тех флажков, изменив настройки OSQA перед установкой в ​​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, 
)) 

Добавлено (attrs={"checked":"checked"}), это не то, что я собирался до, но решает мою проблему.

Смежные вопросы