Уведомления

Группа в Telegram: @pythonsu

Уведомления

  • Found 3484 posts.

Флейм » Нужен разработчик Python Django JQuery » Авг. 14, 2010 19:10:07

Несложный веб проект нуждается в разработчике.
Есть ТЗ, дизайн, понимание того что необходимо =) не хватает программиста который возьмется и воплотит все задуманное в коде.
Если Вы разработчик и хорошо знаете Python+Django+JQuery то не составит труда в кратчайшие сроки реализовать задуманное и получит компенсацию за потраченное время =).
Для связи supportgreatbag@gmail.com

Python для новичков » Маска в поле ввода Tkinter » Авг. 12, 2010 00:24:04

Народ
Можно ли наложить маску ввода??
И как проверить, что строка является “датой”
Заранее благодарю

Python для новичков » получение multiple данные из формы » Авг. 11, 2010 14:48:07

есть
<select multiple=“multiple” name=“select”>
<option value=“1”>1</option>
<option value=“2”>2</option>
<option value=“3”>3</option>
<option value=“4”>4</option>
</select>

как на питеоне получить данные из select , как словарь

какие варианты существуют, кроме как распарсить сам пост?

никакой фреймворк в данном случае не используется.

Базы данных » Странный результат выдачи при выборке даты » Авг. 10, 2010 13:38:02

поле в таблице users_info, birthday тип date по умолчанию 0000-00-00

у пользователей есть возможность не указывать год рождения, например 0000-12-10. выборка

import MySQLdb

db = MySQLdb.Connect()

cursor = db.cursor()

num = cursor.execute("SELECT user_id, birthday FROM users_info WHERE birthday!='0000-00-00' ORDER BY user_id DESC");

print num;

for rw in cursor.fetchall():
user_id = rw[0];
birthday = rw[1];

print user_id, birthday;

db.close();
и если пользователь частично указал дату рождения то birthday = None. Как правильно выбрать либо поменять логику базы?

Django » Админка. Права только на удаление. » Авг. 9, 2010 12:50:27

Можно ли в интерфейсе администратора назначить пользователю права для данного объекта только на удаление?
У меня не получилось: вижу название таблицы, но не могу на него нажать. Что делать?

Python для новичков » Не могу залогинится на форуме » Авг. 6, 2010 05:36:24

Использую следующий код:
# -*- coding: utf-8 -*-

import cookielib, urllib2, urllib, sys

cj = cookielib.CookieJar()
opener = urllib2.build_opener( urllib2.HTTPCookieProcessor(cj) )

request0 = urllib2.Request( 'http://mydomain.com/phpbb0/', None, {"User-Agent": "Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.8.1.8) Gecko/20071008 Firefox/2.0.0.8"} )
handle0 = opener.open( request0, urllib.urlencode( {'username' : '*** ','password' : '***'} ) )
data0 = handle0.read()
handle0.close()

file('page.htm', 'w').write( data0 )
Смотрю затем содержимое “page.htm” - это та же страница, что и до логина. Из этого делаю вывод, что не залогинился.
Подскажет кто-нибудь, куда копать в этом случае?

GUI » [PyQt4] Производительность QGraphicsScene » Авг. 5, 2010 13:37:00

Требуется отслеживать перемещения и собственно перемещать большое количество картинок/точек (пик - 25000). Ну и неплохо бы, хотя бы для части отслеживать коллизии. Тестовая машина обладает слабым процессором (селерон 2ГГц)

Пока играюсь с примером collidingmice.

1) Вынес QTimer из класса mouse в сцену и привязываю события таймаута к каждой мыши. Что избавляет от подергиваний и мыши движутся куда резвее. Где-то 30-40 мышей может двигаться относительно без тормозов. Процессор нагружен на 40%. Собственно код:
    scene.timer = QtCore.QTimer() 
for i in xrange(MouseCount):
mouse = Mouse()
mouse.setPos(math.sin((i * 6.28) / MouseCount) * 200,
math.cos((i * 6.28) / MouseCount) * 200)
scene.timer.timeout.connect(mouse.timerEvent)
scene.addItem(mouse)
scene.timer.start(1000/33)
2) Добавляю кеширование в инициализацию класса Mouse - self.setCacheMode(QtGui.QGraphicsItem.ItemCoordinateCache) Свободно перемещаются до 120 мышей, процессор нагружается на 80%. Но перестает работать обнаружение столкновений, что, конечно, ожидаемо, но неприятно
3) Наконец удаляю всю математику из метода timerEvent. Оставляю только:
    def timerEvent(self):
self.speed += (-50 + QtCore.qrand() % 100) / 100.0

dx = math.sin(QtCore.qrand() % (360 * 16)) * 10
self.mouseEyeDirection = [dx / 5, 0.0][QtCore.qAbs(dx / 5) < 1]

self.rotate(dx)
self.setPos(self.mapToParent(0, -(3 + math.sin(self.speed) * 3)))
1200 мышек начинают шустро бегать по сцене, но до требуемых 25к это не дотягивает даже близко. Получается нужно хоть сколь бы сложные вычисления выносить в модули СИ? :/ Но как связать методы PyQt, и собственный сишный модуль

Теперь собственно вопросы:
1) Что еще можно докрутить, чтобы увеличить скорость работы/количество перемещаемых объектов? (купить новую машину не предлагать)
2) Понимаю что “математика” из timerEvent неоптимизирована, хотя бы потому что каждая мышка сравнивается с очень большим количеством соседних. И повторов сравнений многовато. Какая методика будет правильнее для данного случая?
3) Какие объекты на сцене весят меньше всего, то есть какие объекты эффективнее всего двигать без потери качества?
4) Вижу еще проблему - каждая мышь двигается последовательно (вроде бы), возможно стоит вычислять следующую позицию всех элементов, а потом одним действием их перерисовывать на сцене. Возможно ли такое?

Django » Админка не добавляет записи в БД » Авг. 5, 2010 02:22:18

У меня достаточно странная проблема: админка не хочет добавлять в базу данных записи. Стабильно на всех попытках (даже в стандартном Auth) выводит одно и то же:

TypeError at /admin/topmenu/menu/add/
'message' is an invalid keyword argument for this function
Request Method: POST
Request URL: http://127.0.0.1:8000/admin/topmenu/menu/add/
Django Version: 1.2.1
Exception Type: TypeError
Exception Value:
'message' is an invalid keyword argument for this function
Exception Location: /usr/lib/python2.6/site-packages/django/db/models/base.py in __init__, line 341
Python Executable: /usr/bin/python
Python Version: 2.6.5
Python Path: ['/home/werevolff/python/steamnet', '/usr/lib/python2.6/site-packages/django_cms-2.0.2-py2.6.egg', '/usr/lib/python2.6/site-packages/South-0.5-py2.6.egg', '/usr/lib/ooo/basis-link/program', '/usr/lib/python26.zip', '/usr/lib/python2.6', '/usr/lib/python2.6/plat-linux2', '/usr/lib/python2.6/lib-tk', '/usr/lib/python2.6/lib-old', '/usr/lib/python2.6/lib-dynload', '/usr/lib/python2.6/site-packages', '/usr/lib/python2.6/site-packages/PIL', '/usr/lib/python2.6/site-packages/gst-0.10', '/usr/lib/python2.6/site-packages/gtk-2.0', '/usr/lib/python2.6/site-packages/wx-2.8-gtk2-unicode']
Server time: Чтв, 5 Авг 2010 10:01:00 +1100
Traceback Switch to copy-and-paste view

/usr/lib/python2.6/site-packages/django/core/handlers/base.py in get_response
response = callback(request, *callback_args, **callback_kwargs) ...
&#9654; Local vars
/usr/lib/python2.6/site-packages/django/contrib/admin/options.py in wrapper
return self.admin_site.admin_view(view)(*args, **kwargs) ...
&#9654; Local vars
/usr/lib/python2.6/site-packages/django/utils/decorators.py in _wrapped_view
response = view_func(request, *args, **kwargs) ...
&#9654; Local vars
/usr/lib/python2.6/site-packages/django/views/decorators/cache.py in _wrapped_view_func
response = view_func(request, *args, **kwargs) ...
&#9654; Local vars
/usr/lib/python2.6/site-packages/django/contrib/admin/sites.py in inner
return view(request, *args, **kwargs) ...
&#9654; Local vars
/usr/lib/python2.6/site-packages/django/utils/decorators.py in _wrapper
return decorator(bound_func)(*args, **kwargs) ...
&#9654; Local vars
/usr/lib/python2.6/site-packages/django/utils/decorators.py in _wrapped_view
response = view_func(request, *args, **kwargs) ...
&#9654; Local vars
/usr/lib/python2.6/site-packages/django/utils/decorators.py in bound_func
return func(self, *args2, **kwargs2) ...
&#9654; Local vars
/usr/lib/python2.6/site-packages/django/db/transaction.py in _commit_on_success
res = func(*args, **kw) ...
&#9654; Local vars
/usr/lib/python2.6/site-packages/django/contrib/admin/options.py in add_view
return self.response_add(request, new_object) ...
&#9654; Local vars
/usr/lib/python2.6/site-packages/django/contrib/admin/options.py in response_add
self.message_user(request, msg) ...
&#9654; Local vars
/usr/lib/python2.6/site-packages/django/contrib/admin/options.py in message_user
messages.info(request, message) ...
&#9654; Local vars
/usr/lib/python2.6/site-packages/django/contrib/messages/api.py in info
fail_silently=fail_silently) ...
&#9654; Local vars
/usr/lib/python2.6/site-packages/django/contrib/messages/api.py in add_message
return request.user.message_set.create(message=message) ...
&#9654; Local vars
/usr/lib/python2.6/site-packages/django/db/models/fields/related.py in create
return super(RelatedManager, self).using(db).create(**kwargs) ...
&#9654; Local vars
/usr/lib/python2.6/site-packages/django/db/models/query.py in create
obj = self.model(**kwargs) ...
&#9654; Local vars
/usr/lib/python2.6/site-packages/django/db/models/base.py in __init__
raise TypeError("'%s' is an invalid keyword argument for this function" % kwargs.keys()[0]) ...
&#9654; Local vars
Однако, достаточно ввести данные через popup-окно (добавив в адресной строке ?_popup=1), и запись без вопросов добавляется в БД.

РЕШЕНО!

Оказывается, Django не всё-равно как называются модели. В данном случае, существовало приложение guestbook с моделью Message. В результате, Django терялась. После переименования модели проблема исчезла.

Web » mod_python: определить размер загружаемого файла » Авг. 3, 2010 17:52:55

Перед выполнением загрузки хотелось бы определить размер загружаемого файла перед загрузкой. Можно ли это сделать средствами mod_python?
Или же выполнение скрипта mod_python начинается только в тот момент, когда файл уже загружен?

GUI » Python+Gtk. gtk.Notebook » Июль 29, 2010 17:58:00

Код должен добавлять объекты на вкладки gtk.Notebook “по клику мыши”. Добавляет только на первую вкладку. Подскажите, где не прав?

#coding:utf8

import gtk, gtk.glade

tabs=[gtk.EventBox()]
labels=[]
buttons=[]
efields=[]
fTabs=gtk.Notebook()
toplace="null"

def press_event(widget,event,key):
global toplace
if key=="tab":
tabs.append(gtk.EventBox())
tabs[-1].add(gtk.Fixed())
tabs[-1].show()
tabs[-1].connect("button_press_event",press_event,"on_fTabs")
tabs[-1].set_events(gtk.gdk.BUTTON_PRESS_MASK)
tabs[-1].set_visible_window(False)
fTabs.append_page(tabs[-1],tab_label=gtk.Label(u"Вкладка%s"%(len(tabs))))
if key=="label":
toplace="label"
if key=="button":
toplace="button"
if key=="efield":
toplace="efield"
if key=="on_fTabs": #здесь происходит добавление объектов
if toplace=="label":
labels.append(gtk.Label(u"Метка%s"%(len(labels))))
event_box=gtk.EventBox()
event_box.add(labels[-1])
event_box.connect("button_press_event",press_event,"elabel")
event_box.set_events(gtk.gdk.BUTTON_PRESS_MASK)
curFixed=fTabs.get_nth_page(fTabs.get_current_page()).get_child()
curFixed.put(event_box,int(event.x),int(event.y))
event_box.show()
labels[-1].show()
toplace="null"
if toplace=="button":
buttons.append(gtk.Button(u"Кнопка%s"%(len(buttons))))
curFixed=fTabs.get_nth_page(fTabs.get_current_page()).get_child()
curFixed.put(buttons[-1],int(event.x),int(event.y))
buttons[-1].connect("button_press_event",press_event,"ebutton")
buttons[-1].show()
toplace="null"
if toplace=="efield":
efields.append(gtk.Entry())
efields[-1].set_max_length(25)
efields[-1].set_text("Поле ввода%s"%(len(efields)))
efields[-1].connect("button_press_event",press_event,"eefield")
curFixed=fTabs.get_nth_page(fTabs.get_current_page()).get_child()
curFixed.put(efields[-1],int(event.x),int(event.y))
efields[-1].show()
toplace="null"

def editor_buttons(main):
efieldBtn=main.get_widget("efieldBtn")
buttonBtn=main.get_widget("buttonBtn")
labelBtn=main.get_widget("labelBtn")
tabBtn=main.get_widget("tabBtn")
efieldBtn.connect("button_press_event",press_event,"efield")
buttonBtn.connect("button_press_event",press_event,"button")
labelBtn.connect("button_press_event",press_event,"label")
tabBtn.connect("button_press_event",press_event,"tab")

def cons(main):
tabs[0].connect("button_press_event",press_event,"on_fTabs")
tabs[0].set_events(gtk.gdk.BUTTON_PRESS_MASK)
tabs[0].add(gtk.Fixed())
tabs[0].set_visible_window(False)
mFrame=main.get_widget("viewport1")
tabs[0].show()
fTabs.append_page(tabs[0], tab_label=gtk.Label(u"Главная"))
mFrame.add(fTabs)
editor_buttons(main)

Django » Перестали работать ссылки в админке » Июль 28, 2010 10:10:43

Ребята, выручайте :'(
Собственно поставил django-admin-tools. Поигрался с надстройкой этой. Потом надоела. Удалил в settings.py все подключения. Вернул старую настройку (дефолтную) админки. Все бы ничего, но перестали работать ссылки в ней. Например есть раздел “новости”.
Что происходит. На главной странице имеем ссылку такую
http://localhost:8888/admin/
Нажимаем на ссылку, чтобы попасть в раздел новостей и получаем (ссылка в браузере)
http://www.aviacons.ru/admin/news/newspost/
Но ничего не происходит. Я не переходу в раздел новостей. так и остаюсь на главной. Причем это происходит, что на боевом сервере, что на джанговском разработческом.
Может, кто сталкивался?

Django » Вопрос насчет кеша » Июль 27, 2010 20:20:28

Здравствуйте у меня есть. пожалуйста помогите с ее решением !
Кеширую весь сайт с помощью
'django.middleware.cache.UpdateCacheMiddleware',
'django.middleware.cache.FetchFromCacheMiddleware',
есть одна проблема: при изменении записи не сразу обновляется кеш, соответственно при обновлении старая страница и приходится ждать установленные 180 секунд. Как сделать чтобы при изменении записи сразу обновлялся кеш? Хорошо бы получить хоть часть кода!

Флейм » Ищу опытного программиста Django в Москве для консультаций в офисе. » Июль 26, 2010 23:35:31

Переводим серию сайтов с PHP на Django. Процесс идет достаточно медленно в виду того, что слабо знаком с данным фреймворком. Необходимо провести несколько вводных тренингов или могу пригласить поучаствовать в разработке.

Предвижу множество рекомендаций почитать… Конечно, книги читаем пачками, и останавливаться не планируем. Но практику трудно заменить теорией, и сроки уже на исходе. Нужно экстерном пройти знакомство с Django и немного Python тоже не помешает.


Офис находится в Перово.

GUI » Ttk и Tkinter. Документация и примеры » Июль 26, 2010 12:03:58

Не знаю, куда лучше дать ссылки, но решил дать сюда.
1) книга по Tkinter - http://effbot.org/tkinterbook/
2) примеры, как использовать биндинги к ttk, актуальные для <=2.7 и тем, кто начал использовать ttk раньше, а также рубистам и перловщикам - http://www.tkdocs.com/tutorial/index.html

Хотя в случае Tkinter/ttk никто не отменяет и основную документацию http://www.tcl.tk/man/tcl/contents.htm

Network » imap4 считывать письма с gmail через прокси » Июль 25, 2010 20:16:27

Подскажите плиз, может ли imap4 считывать письма с gmail через прокси? Смотрел все похожие темы, ответа нет.

Python для Java » Здравствуйте, Уважаемые знатоки. Проблема в написан python для java » Июль 24, 2010 20:54:19

Здравствуйте уважаемые.
Я в python не силен, способен только на мелкое редактирование и поэтому обращаюсь к вам уважаемые знатоки
Есть скрипт
Целым его показывать смысла невижу, покажу ту часть над которой пытаюсь разобраться.
 htmltext = "<html><body>Market:<br>Вещи на продажу:<br><table width=300>" + htmltext + "</table></body></html>"
elif event.startswith("sell_"):
itemObjId = int(event.replace("sell_", ""))
obj = str(itemObjId)
Item = st.getPlayer().getInventory().getItemByObjectId(itemObjId)
itemTemplate = Item.getItem()
if Item and itemTemplate.getDuration() == -1 and not Item.isEquipped() and not Item.isAugmented() and not Item.isConsumable() and Item.getItemType() != L2EtcItemType.OTHER and Item.getItemType() != L2EtcItemType.SCROLL and Item.getItemType() != L2EtcItemType.PET_COLLAR and Item.isTradeable() and Item.getItemId() != 403 or Item.getItemType() == L2EtcItemType.SHOT:# and Item.getEnchantLevel() == 0:
cnt = Item.getCount()
count = str(cnt)
grade = itemTemplate.getCrystalType()
igrade = str(itemTemplate.getCrystalType())
itype = str(Item.getItemType())
idtest = Item.getItemId()
con=L2DatabaseFactory.getInstance().getConnection()
listitems=con.prepareStatement("SELECT itemIcon FROM z_market_icons WHERE itemId=?")
listitems.setInt(1, idtest)
rs=listitems.executeQuery()
while (rs.next()) :
icon=rs.getString("itemIcon")
try :
if grade == 1:
pgrade = str("[D]")
elif grade == 2:
pgrade = str("[C]")
elif grade == 3:
pgrade = str("[b]")
elif grade == 4:
pgrade = str("[A]")
elif grade == 5:
pgrade = str("[S]")
else:
pgrade = str("")
if Item.getEnchantLevel() == 0:
enchant = str("")
else:
enchant = " +"+str(Item.getEnchantLevel())+""
st.set("sellitem",obj)
st.set("count",count)
st.set("grade",igrade)
st.set("type",itype)
htmltext = "<html><body>Market:<br>Вещь на продажу:<br>"
htmltext += "<img src=\"Icon."+str(icon)+"\" width=32 height=32>"
htmltext += "<font color=LEVEL>" + itemTemplate.getName() + ""+pgrade+" " + enchant + "</font><br><br>"
htmltext += "Количество: "+count+"<br>"
htmltext += "Установите цену: <br>"
htmltext += "<edit var=\"price\" width=250><br><button value=\"Ok\" action=\"bypass -h Quest q8033_MarketSell $price\" width=40 height=15 back=\"sek.cbui94\" fore=\"sek.cbui92\"><br>"
htmltext += "<br>*установите цену за 1 предмет, конечная цена = кол-во*цену.</body></html>"
except :
try : insertion.close()
except : pass
try :
con.close()
except :
pass
#else :
#htmltext = "<html><body>Market:<br>Oops!</body></html>"
elif event >= 0 or event <=2144000000:
itemPrice = int(event)
itemObjId = st.getInt("sellitem")
itemCount = st.getInt("count")
itemGrade = st.getInt("grade")
itemPrice = int(itemPrice*itemCount)
Item = st.getPlayer().getInventory().getItemByObjectId(itemObjId)
itemTemplate = Item.getItem()
idtest = Item.getItemId()
itype = str(Item.getItemType())
itemType = str(Item.getItemType())
if Item and not Item.isEquipped() :
count = str(itemCount)
if Item.getEnchantLevel() == 0:
enchant = str("")
else:
enchant = " +"+str(Item.getEnchantLevel())+""
#weapons
if itype == "Sword":
ptype = str ("Weapon")
elif itype == "Blunt":
ptype = str ("Weapon")
elif itype == "Dagger":
ptype = str ("Weapon")
elif itype == "Bow":
ptype = str ("Weapon")
elif itype == "Etc":
ptype = str ("Weapon")
elif itype == "Pole":
ptype = str ("Weapon")
elif itype == "Fist":
ptype = str ("Weapon")
elif itype == "Dual Sword":
ptype = str ("Weapon")
elif itype == "Dual Fist":
ptype = str ("Weapon")
elif itype == "Big Sword":
ptype = str ("Weapon")
elif itype == "Big Blunt":
ptype = str ("Weapon")
#armor
elif itype == "Shield":
ptype = str ("Armor")
elif itype == "Light":
ptype = str ("Armor")
elif itype == "Heavy":
ptype = str ("Armor")
elif itype == "Magic":
ptype = str ("Armor")
elif itype == "None":
ptype = str ("Armor")
#recipes
elif itype == "Receipe":
ptype = str ("Recipe")
#resources
elif itype == "Material":
ptype = str ("Resource")
#spellbook
elif itype == "Spellbook":
ptype = str ("Spellbook")
#soulshot
elif itype == "Shot":
ptype = str ("Soulshot")
st.getPlayer().destroyItem("q8033_MarketSell",itemObjId, itemCount, st.getPlayer(), 0)
st.getPlayer().sendPacket(SystemMessage.sendString(""+count+ " " + itemTemplate.getName() + "" + enchant + " выстановлено на аукцион за "+str(itemPrice)+" adena"));
htmltext = "<html><body>Market:<br>Выстановлено на аукцион:<br><font color=LEVEL>"+count+" " + itemTemplate.getName() + "" + enchant + "</font> за "+str(itemPrice)+" adena"
В кратце..
В данном скрипте происходит регистрация предмета в нужный отдел с ценой которую вписываешь.
Я хочу сделать проверку на нужную сумму денег для регистрации и коммисию за выставление предмета на аукцион.
Делаю так
 #spellbook
elif itype == "Spellbook":
ptype = str ("Spellbook")
#soulshot
elif itype == "Shot":
ptype = str ("Soulshot")
+ if st.getQuestItemsCount(57) >= 2500:
+ st.takeItems(57,2500)
st.getPlayer().destroyItem("q8033_MarketSell",itemObjId, itemCount, st.getPlayer(), 0)
st.getPlayer().sendPacket(SystemMessage.sendString(""+count+ " " + itemTemplate.getName() + "" + enchant + " выстановлено на аукцион за "+str(itemPrice)+" adena"));
htmltext = "<html><body>Market:<br>Выстановлено на аукцион:<br><font color=LEVEL>"+count+" " + itemTemplate.getName() + "" + enchant + "</font> за "+str(itemPrice)+" adena"
Но скрипт таким образом не работает, если я делаю только коммисию за выставление предмета
 #spellbook
elif itype == "Spellbook":
ptype = str ("Spellbook")
#soulshot
elif itype == "Shot":
ptype = str ("Soulshot")
+ st.takeItems(57,2500)
st.getPlayer().destroyItem("q8033_MarketSell",itemObjId, itemCount, st.getPlayer(), 0)
st.getPlayer().sendPacket(SystemMessage.sendString(""+count+ " " + itemTemplate.getName() + "" + enchant + " выстановлено на аукцион за "+str(itemPrice)+" adena"));
htmltext = "<html><body>Market:<br>Выстановлено на аукцион:<br><font color=LEVEL>"+count+" " + itemTemplate.getName() + "" + enchant + "</font> за "+str(itemPrice)+" adena"
То скрипт работает коммисия взымается, но вот как сделать проверку? ТОесть если есть данное колличесвто денег в нашем случае этот 2500, то скрипт выполняет работу дальше, если нет то переадресовывает на html страницу под название nocash.
Подскажите пожалуйста.

Django » Django-markitup и Wiki-синтаксис » Июль 23, 2010 15:45:28

Имеется несколько вопросов по Django-markitup

1. Хочу завести вместе http://bitbucket.org/carljm/django-markitup/ и какой-то парсер wiki. Какой парсер можете посоветовать?

2. Как можно прикрутить в админку превью текста пропущенного через парсер в django-markitup?

Python для новичков » работа с xmpppy » Июль 19, 2010 15:43:05

Доброго времени суток!
Обьясните нубу как сделать с помощью сабжа такую штуку, а точнее реализацию xml при отправке-получении ответа (бот я использую с этого же сайта, где и библиотека):
######### Команда #########
<iq type='get'
from='123@i-taxi.com.ua'
to='disp@i-taxi.com.ua'
id='state'>
<query xmlns='http://jabber.org/protocol/disco#info'
node='state' />
</iq>
######### Результат #########
<iq type='result'
from='disp@i-taxi.com.ua'
to='123@i-taxi.com.ua'
id='state'>
<query xmlns='http://jabber.org/protocol/disco#info'
node='state' />
<feature var='В полете'/>
</query>
</iq>
<message
from='disp@i-taxi.com.ua'
to='123@i-taxi.com.ua'
xml:lang='ru'>
<body>Ушел в полет</body>
</message>
В какую сторону копать?
Буду рад любым ссылкам и подсказкам.
Спасибо!

Django » Простой вопрос по Byteflow » Июль 18, 2010 19:35:08

Добрый день. Использую движок для блога byteflow, при добавлении комментария получаю ошибку RedirectException,

файл byteflow/apps/blog/views.py in post_detail, строка 147:
RedirectException(c.get_absolute_url(), notice_message=message).

Это в блоке if form.is_valid(). То есть, если форма комментария верна, возбуждается исключение, как так, зачем оно там?! Поясните с какими целями это происходит, кто в курсе, пожалуйста.

P.S как можно добавить блог в список блогов на byteflow? Сюда - http://byteflow.su/wiki/ByteflowPoweredBlogs добавить не получилось, после нескольких попыток регистрации письмо для подтверждения так и не пришло. Блог - bestadmin.me.

Python для экспертов » Маньячество или не маньячество? » Июль 16, 2010 16:26:42

Пишу враппер для моделей MongoDB, созданных через MongoKit. И меня куда-то понесло и появился вот такой вот злобно-извращенный код для работы с моделью - http://pastie.org/1047145 . Хотелось бы максимум критики и обсуждения, как бы подобное реализовали вы сами :)