Я в настоящее время использую вкусный пирог с 2 приложениями.Каждое из этих приложений имеет модель под названием Group.Они работают очень по-разному, и единственное сходство - это имя «Группа».
Когда в файл URL добавляется только одно или другое приложение, оно работает как шарм.Однако, как только я добавляю оба приложения, возникает конфликт имен, и метод get_resource_uri () возвращает неверную строку.Вот какой-то код:
urls.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())
в строке 37 текущего файла api.py в репозитории tastypie. Я вижу этот код:
if resource_name is None:
raise ImproperlyConfigured("Resource %r must define a 'resource_name'." % resource)
self._registry[resource_name] = resource
Поскольку оба ресурса моей группы имеют имя_ресурса «группа», они регистрируются друг на друге, даже если они зарегистрированы по отдельным URL-адресам.Помимо изменения фактического имени ресурса, есть ли способ обойти это имя?
Обновление Uris будет выглядеть примерно так:
/myapp1/1.0/group/
/myapp2/1.0/group/
В идеале я нене хочу, чтобы myapp1 и myapp2 знали друг о друге (т.е. класс группы различен).Обходной путь для этого состоит в том, чтобы изменить myapp2.Group на myapp2.MyGroup (чтобы избежать конфликта имен), но на самом деле это не так уж и элегантно.