Уведомления

Группа в Telegram: @pythonsu

Уведомления

  • Found 3483 posts.

Django » Проблема с сигналами, не вызывается pre_delete » Июнь 9, 2010 07:39:35

Имеются модели:
class Model1(models.Model):
pass

class Model2(models.Model):
model1 = models.ForeignKey(Model1)

class Model3(models.Model):
model2 = models.ForeignKey(Model2)
Я хочу сделать, чтобы Model2 нельзя удалить, если есть Model3 ссылающиеся на данную модель, и соответственно нельзя удалить Model1, если есть Model2 ссылающиеся на Model1
написал обработчики сигналов:
def model1_delete_handler(sender, instance, **kwargs):
if instance.model2_set.all().count() != 0:
...

def model2_delete_handler(sender, instance, **kwargs):
if instance.model3_set.all().count() != 0:
...

signals.pre_delete.connect(model1_delete_handler, sender=Model1, dispatch_uid = 'model1_delete')
signals.pre_delete.connect(model2_delete_handler, sender=Model2, dispatch_uid = 'model2_delete')
Проблема в том, что почему-то при удалении объектов Model1 сигнал не вызывается, а вызывается только model2_delete_handler. Если закоментировать регистрацию обработчика model2_delete_handler, то model1_delete_handler вызывается. Не понимаю что не так. Раньше подобное было с другими моделями (тоже сигнал pre_delete) но каким-то магическим образом все стало работать, при чем я ничего не менял.
Если кто сталкивался, помогите, срочно надо

Django » Сохранение файла » Июнь 8, 2010 14:28:03

Хочу провернуть такое дело. В upload_to вбить путь с id объекта. Но когда объект первый раз сохраняется, этот id в None, и получается фигня. По этому я написал следующий фокус:
from django.db.models import FileField as DjFileField

class FileField(DjFileField):

# блокирую сохранение
def pre_save(self, model_instance, add):
return getattr(model_instance, self.attname)

# генератор пути к файлу
def generate_filename(self, instance, filename):
return os.path.join(self.upload_to,
str(instance.id),
self.get_filename(filename))

class ItemImage(models.Model):
file = ImageField(upload_to="uploads")

def save(self, *args, **kwargs):
super(ItemImage, self).save(*args, **kwargs)
if self.file:
# генерирую имя и повторно сохраняю
self.file.name = self.file.field.generate_filename(self, self.file.name)
self.file.save(self.file.name, self.file, save=False)
ItemImage.objects.filter(id=self.id).update(file=self.file)
Жуткова-то получается. Как бы это сделали вы?

GUI » [PySide] где uic? » Июнь 7, 2010 10:53:04

Пытаюсь сделать импорт формы из QtDesigner в PySide. Прикол в том, что даже в официальных примерах из git есть импорт from PySide import uic, но он не работает, “Cannot import name”. Нашел, что вроде бы за импорт форм отвечает класс QUiLoader, однако такой вот код не работает, причем даже ошибок не выдает, просто завершается и все.
from PySide import QtCore, QtGui
from PySide.QtUiTools import QUiLoader

class MainWindow(QtGui.QMainWindow):
def __init__(self, *args):
loader = QUiLoader()
file = QFile('file.ui')
file.open(QFile.ReadOnly)
myWidget = loader.load(file, self)
file.close()
self.addWidget(myWidget)

def main():
app = QtGui.QApplication(sys.argv)
window = MainWindow()
window.show()
sys.exit(app.exec_())
Ну и вопрос, следовательно - что я делаю не так?

Django » выборка объектов » Июнь 5, 2010 00:16:57

привет!

начал делать сайт и возникло несколько вопросов по выборке объектов.

вот модели:
class Task(Named):
proj = models.ForeignKey(Proj)
type = models.ForeignKey(TaskType)
tags = models.ManyToManyField(Tag, null=True, blank=True)
description = models.TextField(blank=True)

TASK_RELATINGS = (
(0, 'косвенно зависит'),
(1, 'включает в себя'),
(2, 'является частью'),
(3, 'является следствием'),
(4, 'является предшедственником'),
)

class TaskRelating(Named):
task_from = models.ForeignKey("Task", related_name="from_task")
task_to = models.ForeignKey("Task", related_name="to_task")
description = models.TextField(blank=True)
tags = models.ManyToManyField(Tag, null=True, blank=True)
type = models.IntegerField(choices=TASK_RELATINGS)


class Proj(Named):
authors = models.ManyToManyField(User)
tags = models.ManyToManyField(Tag, null=True, blank=True)
specifications = models.TextField(blank=True)
проект, к которому прикреплены задачи посредством foreign key;
так же задачи могут быть связаны друг с другом через TaskRelating

1 вопрос:

в шаблоне необходимо вывести список проектов с задачами
сейчас я формирую этот список так:
    projects = Proj.objects.filter(authors=user)
for project in projects:
project.tasks = Task.objects.filter(proj=project)
но чую, что это неправильно. как правильно это сделать, чтобы на выходе получилось, что у каждой записи в projects появилось поле tasks со списком связанных с ним задач?

2 вопрос:
каким образом можно выбрать задачи проекта, на которые ссылаются объекты класса TaskRelating с определённым значением type?

3 вопрос:
возможно ли выбрать задачи проекта, на которые не ссылаются объекты TaskRelating?

4 вопрос:
есть ли в джанге возможность построения дерева ссылок заданной глубины?
т.е. допустим, у объекта project есть несколько задач, у которых есть несколько дочерних задач (дочерность определяется объектами task_relating) - можно ли построить запрос, чтобы создался объект примерно такого содержания?
project.tasks.tasks.task_relating_type…

т.е. первая задача проекта, содержащая первую подзадачу типа task_relating_type?

5 вопрос:
есть ли велосипед для вывода подобного рода (древообразных) структур?

Django » Очередной вопрос про русские буквы » Июнь 4, 2010 22:54:23

Излазил все но так чтото и не догадался.
Использую django + psycopg2
в базе postgresql название столбцов русские буквы
сначала делал enconv models.py -не помогло
когда пишу
u“ название_столбца_русскими буквами” пишет cant assign to litteral
u“бла-бла”.encode(UTF-8) - cant assign to function call

как быть?
в начале файла стоит что енкодинг ютф-8

Django » как организовать закачку прикреплённых фото? » Июнь 4, 2010 13:23:23

имеется модель:
class FlatSell(models.Model):
#...
class Image(models.Model):
#...
owner = models.ForeignKey(FlatSell, blank=True, null=True)
т.е. к объекту FlatSell могут быть добавлены несколько фото.
теперь как это на практике: юзер давит “добавить FlatSell”, я даю ему форму AddFlatSell для заполнения многих полей FlatSell и ссылочку “добавить фото”, по которой вывожу форму PhotoUploadForm для закачки одного файла фото через , н.п., следующий вид:
def upload(request, owner_id, form_class=PhotoUploadForm,
template_name="upload.html"):
# upload form for photos
#
photo_form = form_class()
if request.method == 'POST':
if request.POST["action"] == "upload":
photo_form = form_class(request.user, request.POST, request.FILES)
if photo_form.is_valid():
photo = photo_form.save(commit=False)
photo.ownerflat = owner_id
photo.save()
request.user.message_set.create(message=_("Successfully uploaded photo '%s'") % photo.title)
return HttpResponseRedirect(reverse('photo_details', args=(photo.id,)))

return render_to_response(template_name, {
"photo_form": photo_form,
}, context_instance=RequestContext(request))
и тут возникают две проблемы:
1) объкт FlatSell еще не создан, ибо submit на форме AddFlatSell еще никто не жал и owner_id еще не определен.
2) уйдя с формы AddFlatSell на PhotoUploadForm надо запоминать введенные поля, чтобы вернуться назад с ними.

Первый вопрос можно решать в лоб, но очень коряво получится:
запоминать Id новой фотографий, н.п. в какой-то временной таблице, потом по submit в AddFlatSell их прикреплять к FlatSell.
А как с формы AddFlatSell уходить по рэфу и запомнить заполненные поля? я еще не придумал.

Вопрос: Как решается вопрос по организации таких схем по уму?

Django » Context и повторное использование данных » Июнь 3, 2010 10:02:13

Уважаемые Гуру… возник ряд вопросов касательно работы Django
1. Прописал в settings.py переменные:
LOGIN_URL = '/login/'
LOGOUT_URL ='/logout/'
И если LOGIN_URL работает (через декоратор @login_required) - то с LOGOUT_URL засада… в шаблоне {{LOGOUT_URL}} пусто.
2. Там же
PROJECT_ROOT = os.path.normpath(os.path.dirname(__file__))
Опять же использовать ее в шаблоне {{PROJECT_ROOT}} не получается… пустота
Подозреваю, что где-то здесь должна появиться передача Context - но где и как понять пока не получилось. Подскажите куда копать..
3. Решил за основу взять дизайн Админки (простенько и со вкусом)… создал свой base.html в котором выводится основная шапка с именем пользователя… все остальные страницы идут как {% extends “base.html” %}. Но вот в чем проблема - приходится постоянно вычислять данные авторизованного пользователя в каждой из процедур во view.py выводящей страницу - подозреваю, что есть более изящное решение.
4. Кто нибудь может пояснить как организована навигация в Админке (хочу такую же рализовать) - в коде Админки она идет как
{% block breadcrumbs %}<div class="breadcrumbs"><a href="/">{% trans 'Home' %}</a>{% if title %} &rsaquo; {{ title }}{% endif %}</div>{% endblock %}
У меня никак не получается создать аналогичную цепочку открытых страниц.

Заранее Спасибо

Django » reverse url для Flatpages » Июнь 2, 2010 23:04:28

Можно ли задать имя флетпейджам чтобы можно было делать reverse url не привязываясь к url
Нашел примеры, но они не подходят:
from django.conf.urls.defaults import *

urlpatterns = patterns('',
('^pages/', include('django.contrib.flatpages.urls')),
)
from django.core.urlresolvers import reverse

reverse('django.contrib.flatpages.views.flatpage', kwargs={'url': '/about-us/'})
# Gives: /pages/about-us/
<a href='{% url django.contrib.flatpages.views.flatpage url="/about-us/" %}'>About Us</a>
Как быть если я не буду явно указывать

urlpatterns = patterns('',
('^pages/', include('django.contrib.flatpages.urls')),
)

Django » Сохранение traceback » Июнь 2, 2010 17:44:18

Здравствуйте.
Подскажите, как лучше всего сохранять traceback (sys.exc_info())
Пробовал cgitb, но может есть вариант с бОльшей информативностью. Возможно, было бы правильно использовать сбственный обработчик exception из django.views.debug, но не выходит, вылетает с ошибкой. Ему request нужен, а у меня его нет там, где нужно traceback сохранять.

Python для экспертов » Пропатчить метод » Июнь 2, 2010 01:01:02

Да вот только не простой метод, а enclosed функцию метода.
Вот такое не работает, ессно, но показывает чего хотелось бы добиться:
class A():
def af(self):
def bf():
print 'bf'
bf()

a = A()
def cf(x,y):
print 'cf'

#
a.af.bf = cf
#
a.af()
>>> 'cf'
UPD: написал, потом подумал :) контекст же неоткуда взять, так что низя. Разве что передавать ему locals …

Network » отправка почты - smtplib.SMTPAuthenticationError: (334, 'UGFzc3dvcmQ6' » Июнь 1, 2010 21:53:01

Пытаюсь отправлять почту через smtp.km.ru:

import smtplib
from email.MIMEText import MIMEText
from extract import MAILS


def send(to):
you = to
# текст письма
text = 'Здравствуйте!'
# заголовок письма
subj = 'САБЖ'
server = "smtp.km.ru"
name,pwd,me = "pythont","123456","pythont@km.ru"
user_name = name
user_passwd = pwd
msg = MIMEText(text, "", "utf-8")
msg['Subject'] = subj
msg['From'] = me
msg['To'] = you

s = smtplib.SMTP(server, port)
s.starttls()
s.login(user_name, user_passwd)
s.sendmail(me, you, msg.as_string())
s.quit()


send("youmail@yandex.ru")
Выдает:

s.login(user_name, user_passwd)
File “C:\Python25\lib\smtplib.py”, line 591, in login
raise SMTPAuthenticationError(code, resp)
smtplib.SMTPAuthenticationError: (334, ‘UGFzc3dvcmQ6’)

Кто нибудь знает в чем тут дело?

ps.
На другие серверы (smtp.mail.ru,mail.rambler.ru) отправляется.

Web » suds и куки » Май 27, 2010 14:37:26

Привет всем.
Пишу небольшой скрипт для связис веб-сервером, в числе прочего требуется получить куки, выдаваемые сервером после удачного логина.

Строчки примерно такие:
client = suds.client.Client(WSDLfile)
client.service.Login('mylogin', 'mypass')
print client.options.transport.cookiejar
В FreeBSD возвращается, как и положено, нечто вроде
<cookielib.CookieJar[<Cookie sessnum=9WAXQ25D37XY535F6SZ3GXKSCTZG8CVJ for .IP.IP.IP.IP/>]>
В винде же возвращается
<cookielib.CookieJar[]>
В чем может быть косяк?

PS Версии питона и там и там - одинаковые, а сам suds ставился из одних исходников.

UPD Решил проблему в лоб - сделал авторизацию “в тупую”, через пост запрос урллиба, но все-таки жутко хотелось разобраться в чем там дело-то было =)

Флейм » Python: ищу партнера-субподрядчика в Киеве » Май 26, 2010 18:37:01

Инструментальный коплекс (WEB-приложение + серверные скрипты) на python для зарубежного заказчика. Перспектива длительного сотрудничества.

Приветствуется знание bazaar, английского/французского.

ЗЫ: Зарегиться на python.su (чтобы оставить вакансию) не получается - 404

Python для новичков » Русские символы в PyScripter и командной строке windows » Май 26, 2010 10:49:52

Пытаюсь написать программу на Python, которая определяет ascii код символа вводимого с клавиатуры. Если запускаю из PyScripter коды русских символов определяются правильно, если же из командной строки - то код пишется только для английских символов.
# -*- coding: utf-8 -*-
import pythoncom, pyHook
import codecs, sys, os
outf = codecs.getwriter('cp866')(sys.stdout, errors='replace')
sys.stdout = outf

def OnKeyboardEvent(event):
print event.Ascii
if event.KeyID == 192:
exit(1)
return True

hm = pyHook.HookManager()
hm.KeyDown = OnKeyboardEvent
hm.HookKeyboard()
pythoncom.PumpMessages()

GUI » Доступ к данным модели QTableView из другого класса » Май 26, 2010 08:37:50

приветствую,

по примеру из книги Марка создал модель QTableView. Модель имеет также функции сохранения и загрузки данных в/из файл(а). Но, так как программа содержит несколько таблиц (связанных master-detail relation) думаю создать некий класс который будет отвечать за сохранение/загрузку данных и из других моделей. Наверное вопрос елементарный, но не могу добиться данных через границы классов, хотя в пределах одного класа все работает замечательно.

Собственно модель:

class  srcTableModel(QtCore.QAbstractTableModel):

def __init__(self, fileName = QtCore.QString()):
super (srcTableModel, self).__init__()
self.ships = []
self.fileName = fileName
self.dirty = True


def rowCount (self, index=QtCore.QModelIndex()):
return len(self.ships)



def columnCount (self, index=QtCore.QModelIndex()):
return 11


def headerData(self, section, orientation, role=QtCore.Qt.DisplayRole):
if role != QtCore.Qt.DisplayRole:
return
if orientation == QtCore.Qt.Horizontal:
if section == EQUIPMENT:
return (QtGui.QApplication.translate("MainWindow", "Виробництво", None, QtGui.QApplication.UnicodeUTF8))
elif section == SRCCODE:
return (QtGui.QApplication.translate("MainWindow", "№ дж.", None, QtGui.QApplication.UnicodeUTF8))
elif section == SRCNAME:
return (QtGui.QApplication.translate("MainWindow", "Найменув. дж.", None, QtGui.QApplication.UnicodeUTF8))
elif section == SRCX1:
return (QtGui.QApplication.translate("MainWindow", "X,м", None, QtGui.QApplication.UnicodeUTF8))
elif section == SRCY1:
return (QtGui.QApplication.translate("MainWindow", "Y,м", None, QtGui.QApplication.UnicodeUTF8))
elif section == SRCTYPE:
return (QtGui.QApplication.translate("MainWindow", "Тип дж.", None, QtGui.QApplication.UnicodeUTF8))
elif section == ZONESIZE:
return (QtGui.QApplication.translate("MainWindow", "Розмір СЗЗ", None, QtGui.QApplication.UnicodeUTF8))
elif section == SRCHEIGHT:
return (QtGui.QApplication.translate("MainWindow", "Висота дж., м", None, QtGui.QApplication.UnicodeUTF8))
elif section == SRCDIAMETER:
return (QtGui.QApplication.translate("MainWindow", "Діаметер дж., м", None, QtGui.QApplication.UnicodeUTF8))
elif section == GASDEPLETION:
return (QtGui.QApplication.translate("MainWindow", "Витрата ПГВС, м3/с", None, QtGui.QApplication.UnicodeUTF8))
elif section == GASTEMPERATURE:
return (QtGui.QApplication.translate("MainWindow", "Темпер. ПГВС", None, QtGui.QApplication.UnicodeUTF8))

return int(section + 1)


def data (self, index, role=QtCore.Qt.DisplayRole):
if index.isValid() and 0 <= index.row() < len(self.ships):
ship = self.ships [index.row()]
column = index.column()
if role == QtCore.Qt.DisplayRole:
if column == EQUIPMENT:
return QtCore.QVariant(ship.equipment)
elif column == SRCCODE:
return QtCore.QVariant(ship.srcCode)
elif column == SRCNAME:
return QtCore.QVariant(ship.srcName)
elif column == SRCX1:
return QtCore.QVariant(ship.srcX1)
elif column == SRCY1:
return QtCore.QVariant(ship.srcY1)
elif column == SRCTYPE:
return QtCore.QVariant(ship.srcType)
elif column == ZONESIZE:
return QtCore.QVariant(ship.zoneSize)
elif column == SRCHEIGHT:
return QtCore.QVariant(ship.srcHeight)
elif column == SRCDIAMETER:
return QtCore.QVariant(ship.srcDiameter)
elif column == GASDEPLETION:
return QtCore.QVariant(ship.gasDepletion)
elif column == GASTEMPERATURE:
return QtCore.QVariant(ship.gasTemperature)
return


def flags(self, index):
if not index.isValid():
return QtCore.Qt.ItemIsEnabled
return QtCore.Qt.ItemFlags(QtCore.QAbstractTableModel.flags(self, index)|QtCore.Qt.ItemIsEditable)


def setData (self, index, value, role=QtCore.Qt.DisplayRole):
if index.isValid() and 0 <= index.row() < len (self.ships):
ship = self.ships [index.row()]
column = index.column()
if column == EQUIPMENT:
ship.equipment = value.toString()
elif column == SRCCODE:
value, ok = value.toInt()
if ok:
ship.srcCode = value
elif column == SRCNAME:
ship.srcName = value.toString()
elif column == SRCX1:
value, ok = value.toInt()
if ok:
ship.srcX1 = value
elif column == SRCY1:
value, ok = value.toInt()
if ok:
ship.srcY1 = value
elif column == SRCTYPE:
ship.srcType = value.toString()
elif column == ZONESIZE:
value, ok = value.toInt()
if ok:
ship.zoneSize = value
elif column == SRCHEIGHT:
value, ok = value.toInt()
if ok:
ship.srcHeight = value
elif column == SRCDIAMETER:
value, ok = value.toInt()
if ok:
ship.srcDiameter = value
elif column == GASDEPLETION:
value, ok = value.toInt()
if ok:
ship.gasDepletion = value
elif column == GASTEMPERATURE:
value, ok = value.toInt()
if ok:
ship.gasTemperature = value
self.dirty = True
self.emit(QtCore.SIGNAL("dataChanged(QModelIndex, QModelIndex)"), index, index)
return True
return False


def insertRows (self, position, rows=1, index=QtCore.QModelIndex()):
self.beginInsertRows(QtCore.QModelIndex(), position, position + rows - 1)
for row in range(rows):
self.ships.insert(position + row, srcShip("Unknown", 0, "Unknown", 0, 0, "Unknown", 0, 0, 0, 0, 0))
self.endInsertRows()
self.dirty = True
return True


def removeRows(self, position, rows=1, index=QtCore.QModelIndex()):
self.beginRemoveRows(QtCore.QModelIndex(), position, position + rows - 1)
self.ships = self.ships[:position] + self.ships [position + rows:]
self.endRemoveRows()
self.dirty = True
return True

def loadFile(self, fileName):
exception = None
fh = None
self.fileName = QtCore.QString(fileName)
try:
if self.fileName.isEmpty():
raise IOError, "no fileName specified for loading"
fh = QtCore.QFile(self.fileName)
if not fh.open(QtCore.QIODevice.ReadOnly):
raise IOError, unicode(fh.errorString())
stream = QtCore.QDataStream(fh)
magic = stream.readInt32()
if magic != MAGIC_NUMBER:
raise IOError, "unrecognized file type"
fileVersion = stream.readInt16()
if fileVersion != FILE_VERSION:
raise IOError, "unrecognized file type version"
stream.setVersion(QtCore.QDataStream.Qt_4_5)
self.ships = []
while not stream.atEnd():
equipment = QtCore.QString()
stream >> equipment
srcCode = stream.readInt32()
srcName = QtCore.QString()
stream >> srcName
srcX1 = stream.readInt32()
srcY1 = stream.readInt32()
srcType = QtCore.QString()
stream >> srcType
zoneSize = stream.readInt32()
srcHeight = stream.readInt32()
srcDiameter = stream.readInt32()
gasDepletion = stream.readInt32()
gasTemperature = stream.readInt32()
self.ships.append(srcShip(equipment, srcCode, srcName, srcX1, srcY1, srcType, zoneSize, srcHeight, srcDiameter, gasDepletion, gasTemperature))
self.reset()
self.dirty = False
except (IOError, OSError), e:
exception = e
finally:
if fh is not None:
fh.close()
if exception is not None:
raise exception


def saveFile(self):
exception = None
fh = None
try:
if self.fileName.isEmpty():
self.fileName = QtGui.QFileDialog.getSaveFileName(None, "Ships - Choose Save File", "", "Trianon project (*.tri)")
fh = QtCore.QFile(self.fileName)
if not fh.open(QtCore.QIODevice.WriteOnly):
raise IOError, unicode(fh.errorString())
stream = QtCore.QDataStream(fh)
stream.writeInt32(MAGIC_NUMBER)
stream.writeInt16(FILE_VERSION)
stream.setVersion(QtCore.QDataStream.Qt_4_5)
for ship in self.ships:
stream << QtCore.QString(ship.equipment)
stream.writeInt32(ship.srcCode)
stream << QtCore.QString(ship.srcName)
stream.writeInt32(ship.srcX1)
stream.writeInt32(ship.srcY1)
stream << QtCore.QString(ship.srcType)
stream.writeInt32(ship.zoneSize)
stream.writeInt32(ship.srcHeight)
stream.writeInt32(ship.srcDiameter)
stream.writeInt32(ship.gasDepletion)
stream.writeInt32(ship.gasTemperature)
self.dirty = False
except IOError, e:
exception = e
finally:
if fh is not None:
fh.close()
if exception is not None:
raise exception
спасибо,
-вадим

Django » Запуск syncdb на mac os » Май 24, 2010 18:41:42

Помогите пож-та

При попытке запустить вот что выдает
Mb-3:mysite dmitryvinogradov$ python manage.py syncdb
Traceback (most recent call last):
File "manage.py", line 11, in <module>
execute_manager(settings)
File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/django/core/management/__init__.py", line 362, in execute_manager
utility.execute()
File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/django/core/management/__init__.py", line 303, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/django/core/management/base.py", line 195, in run_from_argv
self.execute(*args, **options.__dict__)
File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/django/core/management/base.py", line 221, in execute
self.validate()
File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/django/core/management/base.py", line 249, in validate
num_errors = get_validation_errors(s, app)
File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/django/core/management/validation.py", line 22, in get_validation_errors
from django.db import models, connection
File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/django/db/__init__.py", line 41, in <module>
backend = load_backend(settings.DATABASE_ENGINE)
File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/django/db/__init__.py", line 17, in load_backend
return import_module('.base', 'django.db.backends.%s' % backend_name)
File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/django/utils/importlib.py", line 35, in import_module
__import__(name)
File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/django/db/backends/mysql/base.py", line 13, in <module>
raise ImproperlyConfigured("Error loading MySQLdb module: %s" % e)
django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module: dynamic module does not define init function (init_mysql)
Не понимаю что делать или какой командой проверить

Выполнял установку
Mb-3:mysite dmitryvinogradov$ easy_install MySQL-python
Searching for MySQL-python
Best match: MySQL-python 1.2.3c1
Processing MySQL_python-1.2.3c1-py2.6-macosx-10.3-fat.egg
MySQL-python 1.2.3c1 is already the active version in easy-install.pth

Using /Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/MySQL_python-1.2.3c1-py2.6-macosx-10.3-fat.egg
Processing dependencies for MySQL-python
Finished processing dependencies for MySQL-python

Python для новичков » gotoxy, curses » Май 23, 2010 16:22:15

Необходимо в консоли в определенной координате выводить текст. Погуглил нашел в интернете про модуль curses. Узнал что там можно такое сделать. Но вот пытаюсь написать простейший код, а происходит следующее:
Пишу:
import curses
screen = curses.initscr()
Пишу на иксах, в geany. Так вот если компилирую такой код в гини, то он пишет что в модуле нет такого атрибута. Если пишу в интерпритаторе при закрытом гини, то он компилируется, но происходит не понятное - строки начинают кудато уползать)).

Может есть какойто варинат без использования этого модуля?

Network » Получения списка рабочих тредов и tcp\ip соединений » Май 22, 2010 11:29:09

Есть ли какая нибудь возможность получить список работающих в данный момент тредов и открытых tcp\ip соединений?
Как я уже писал http://python.su/forum/viewtopic.php?id=7488 у меня есть некоторая аномалия не завершённости треда либо открытого tcp\ip соединения.

Вот хочу всё таки узнать что является проблемой, чтобы понять в какую сторону копать.

GUI » [PyQt] QsciScintilla.findFirst регистр символов » Май 21, 2010 22:14:59

При использовании регистронезависимого поиска, метод findFirst/findNext не игнорирует регистр русских символов, хотя с латиницей работает верно. setUtf8(True) делал. Так-же при поиске регулярного выражения найденный текст разваливается на кракозяблы. Кто-нибудь знает как это исправить? Или вариант один - переписать метод?

python: 2.6.5
платформа: winxp
pyqt ривербанковское, 4.7.3-2

Python проекты » Бот XMPP » Май 21, 2010 09:42:41

Написал простой движок бота XMPP - в зависимостях только xmpppy. Опыта в разработке у меня мало - хочу, чтобы вы оценили мою поделку: http://slil.ru/29175249

Сильно не пинать!