Джанго базовый класс наследования супер

Я хотел бы использовать наследование и иметь все мои ресурсы наследования от базового класса ресурсов.

Вы увидите, что я попробовал до сих пор ниже. Моя проблема заключается в том, что мне нужно добавить мета-класс, так как он сейчас перезаписывается. Как это может быть сделано?

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 ответа

Решение

Существует обходной путь:

Мета-наследование ресурса

Также посмотрите на: Tastypie Meta Inheritance

Унаследуйте 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'
Другие вопросы по тегам