我目前正在使用带有 2 个应用程序的美味派。这些应用程序中的每一个都有一个名为 Group 的模型。它们的运作方式非常不同,唯一的相似之处是“集团”这个名称。
当只有一个或另一个应用程序添加到 urls 文件时,它就像一个魅力。但是,一旦我添加了这两个应用程序,就会出现名称冲突,并且 get_resource_uri() 方法返回错误的字符串。这是一些代码:
网址.py
from myapp1.resources import GroupResource as gr_a
from myapp2.resources import GroupResource as gr_b
myapp1_api = Api(api_name='1.0')
myapp1_api.register(gr_a())
myapp2_api = Api(api_name='1.0')
myapp2_api.register(gr_b())
在 sweetpie 存储库中当前 api.py 文件的第 37 行,我看到了以下代码:
if resource_name is None:
raise ImproperlyConfigured("Resource %r must define a 'resource_name'." % resource)
self._registry[resource_name] = resource
由于我的两个 Group 资源的 resource_name 为“group”,因此它们会相互注册,即使它们是在单独的 url 上注册的。除了更改实际资源名称之外,是否有解决此名称冲突的方法?
更新 uris 看起来像这样:
/myapp1/1.0/group/
/myapp2/1.0/group/
理想情况下,我不希望 myapp1 和 myapp2 相互了解(即 Group 类是不同的)。解决方法是将 myapp2.Group 更改为 myapp2.MyGroup (以避免名称冲突),但它确实不是那么优雅。