如何在Django中使用SOAP over SOAP?

时间:2013-04-23 15:59:20

标签: python django soap django-models suds

目前我有一个Django项目,我们称之为Backend。有一个文件夹api,我在那里使用Django-Tastypie声明了这个资源:

from django.contrib.auth.models import User
from tastypie.resources import ModelResource, ALL
from tastypie.authentication import BasicAuthentication
from tastypie.authorization import DjangoAuthorization
from tastypie.cache import SimpleCache
from tastypie.throttle import CacheDBThrottle

class UserResource(ModelResource):
    class Meta:
        queryset = User.objects.all()
        resource_name = 'user'
        excludes = ['email', 'password', 'is_staff', 'is_superuser']
        authentication = BasicAuthentication()
        authorization = DjangoAuthorization()
        cache = SimpleCache()
        throttle = CacheDBThrottle()

        filtering = {
            'username' : ALL,
            'date_joined' : ['gt','lt','gte','lte','range']        
        }

如果有适当的路由规则,如果我访问http://127.0.0.1:8000/api/v1/user?format=json之类的网址,我应该以json格式获取有关用户的一些信息,但是来自我的本地数据库。我不想使用任何本地数据库,除了可能用于测试一些虚拟数据。我希望这样的get请求能够通过我登录的会话的用户名和密码向某个远程服务器发出SOAP请求。

我已经拥有一个独立的Python应用程序,我可以使用SUDS和预先下载的WSDL文件执行SOAP请求并获取SOAP响应。现在我希望以这种方式在我的Dhango项目中包含此功能,我在项目中更改settings.py中的设置,但我不必修改项目中的应用程序。

2 个答案:

答案 0 :(得分:1)

您可以定义自己使用独立Python应用程序的Custom managers

答案 1 :(得分:0)

来自tastypie documentation。将此代码添加到您的urls.py应该有效:

from tastypie.api import Api
from my_app.api.resources import UserResource

v1_api = Api(api_name='v1')
v1_api.register(UserResource())

#old urlpatterns here

urlpatterns += patterns('',
  (r'^api/', include(v1_api.urls)),
)