Джанго базовый класс наследования супер
Я хотел бы использовать наследование и иметь все мои ресурсы наследования от базового класса ресурсов.
Вы увидите, что я попробовал до сих пор ниже. Моя проблема заключается в том, что мне нужно добавить мета-класс, так как он сейчас перезаписывается. Как это может быть сделано?
class BasedModelResource(ModelResource):
class Meta:
authentication = ApiKeyAuthentication()
authorization = UserObjectsOnlyAuthorization()
class AccountResource(BasedModelResource):
"""
Account Object Resource
"""
class Meta:
queryset = Account.objects.all()
resource_name = 'account'
2 ответа
Решение
2013-06-11 12:55
Унаследуйте Meta явно и отдельно от Resource, так как это отдельный класс:
class CommonMeta:
abstract = True
authentication = SessionAuthentication()
authorization= Authorization()
allowed_methods = ('get', 'post', 'put', 'delete', 'patch')
class MyResource(ModelResource):
...
class Meta(CommonMeta):
# Inherits CommonMeta's properties.
# Note: abstract will become False automatically.
queryset = MyModel.objects.all()
resource_name = 'my_model'