开发者

soaplib2.0.0beta + django and 1C connect error

I have task get up soap service in Django (for receive data from commerce software)

Have been installed soaplib2.0.0beta and made layer from soap to django (use Django Snippets) Created some soap-methods and data types. Everything works with suds (lib) test, but receive errors in production.

Erorrs says some column is not unique, but data is okey and method can connect to db (.all().count() test).

I think mistake in layer or nginx's config...

Code of Layer:

# Code of Layer:
class DjangoSoapApp(Application):
    def __call__(self, request):
        # wrap the soaplib response into a Django response object
        django_response = HttpResponse()
        def start_response(status, headers):
            status, reason = status.split(' ', 1)
            django_response.status_code = int(status)
            for 开发者_运维百科header, value in headers:
                django_response[header] = value
        response = super(DjangoSoapApp, self).__call__(request.META, start_response)
        django_response.content = '\n'.join(response)
        return django_response

Method's code:

# Method's code
class SyncService(DefinitionBase):

    @rpc(User, Order, _returns=Array(Response))
    def CreateOrder(self, user=None, order=None):
        response = []

        # response.append(Response(Result = True, Response = "ORDERS: " + str(self.tmp.count())))
        # return response

        if not user or not order:
            response.append(Response(Result = False, Response = "Exception: not send user or order"))
            return response
        try:
            new_user = user_model.objects.get(commerce_uid=user.Id)
            response.append(Response(Result = True, Response="Success: Get user %s %s" % (user.Name, user.EMail)))
        except Exception as e:
            try:
                new_user = user_model(
                    email=user.EMail,
                    commerce_uid=user.Id,
                    telephone=user.Phone,
                    name=user.Name,
                    username=re.sub(r'\.|\@', '', user.EMail),
                    isSync = True)
                new_user.save()
                response.append(Response(Result = True,Response = "Success: Create user %s %s" % (user.Name, user.EMail)))
            except Exception as e:
                response.append(Response(Result = False, Response = "Exception: user '%s' not found and can't create (%s)" % (user, e)))
                return response

        try:
            new_order = order_model(
                user=new_user,
                date=order.Date,
                time=order.Time,
                boat=order.Boat,
                amount=order.Quantity,
                isSync=True
            )
            new_order.save()
            response.append(Response(Result = True, Response = "Success: Create order %s" % (order)))
        except Exception as e:
            response.append(Response(Result = False, Response = "Exception: Can't create order '%s' for user '%s' (%s)" % (order, user, e)))
            return response

        return response

Sample of error:

Exception: user 'Id: 6d73d109-4b7b-453e-819a-94c42a883c09, Name: John Smith 2, Email: email2@email.com, Phone: +749512345679' not found and can't create (column commerce_uid is not unique)
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜