Заставил работать на 2.7….но опять проблема:
#coding=cp1251
from django.shortcuts import render
from django.http import HttpResponse, HttpResponseBadRequest, HttpResponseServerError
from django.db import connections
import win32com.client
import pythoncom
import datetime
from dateutil.tz import tzutc, tzlocal
import pywintypes
class ComConnectorMeta(type):
connector = None
def __new__(cls, *args, **kwargs):
if cls.connector == None:
cls.connector = cls.init_connector()
return super(ComConnectorMeta, cls).__new__(cls, *args, **kwargs)
@staticmethod
def init_connector():
pythoncom.CoInitialize()
V81_CONN_STRING = "Настройка подключения"
CON = win32com.client.Dispatch("V81.COMConnector").Connect(V81_CONN_STRING)
return CON
class ComConnector():
__metaclass__ = ComConnectorMeta
def addorder2(request):
V81 = ComConnector.connector
now = datetime.datetime.now(tzutc()) + datetime.timedelta(hours = 5)
orderObject = getattr(V81.Documents, "Контакт").CreateDocument()
setattr(orderObject, 'Дата', now)
orderObject.Write(V81.DocumentWriteMode.Write)
return HttpResponse(u'все хорошо')
При первом обращении к странице - проходит инициализация и успешная запись.
Но при повторном - появляется все та же ошибка:
AttributeError
Connect.Documents
orderObject = getattr(V81.Documents, “Контакт”).CreateDocument()
raise AttributeError(“%s.%s” % (self._username_, attr))
Странно, что если это сделать просто как скрипт в виде:
#coding=cp1251
import win32com.client
import pythoncom
import datetime
from dateutil.tz import tzutc, tzlocal
class ComConnectorMeta(type):
connector = None
def __new__(cls, *args, **kwargs):
if cls.connector == None:
cls.connector = cls.init_connector()
return super(ComConnectorMeta, cls).__new__(cls, *args, **kwargs)
@staticmethod
def init_connector():
pythoncom.CoInitialize()
V81_CONN_STRING = "Srvr=1C;Ref=REG_COPY;Usr=adminchel;Pwd=123;"
CON = win32com.client.Dispatch("V81.COMConnector").Connect(V81_CONN_STRING)
return CON
class ComConnector():
__metaclass__ = ComConnectorMeta
def addorder2():
V81 = ComConnector.connector
now = datetime.datetime.now(tzutc()) + datetime.timedelta(hours = 5)
orderObject = getattr(V81.Documents, "Контакт").CreateDocument()
setattr(orderObject, 'Дата', now)
orderObject.Write(V81.DocumentWriteMode.Write)
print(u'все хорошо')
if __name__ == '__main__':
addorder2() #первый вызов функции
addorder2() #второй вызов функции
Все работает отлично, и делается подряд 2 записи, время на инициализацию уходит только 1 раз…
Подскажите, в чем ошибка? Скорее всего я чего-то не понимаю…