Если этот вопрос все еще стоит, я не думаю, что у нас достаточно информации, чтобы ответить на него.
Прежде всего,
class Foo(object):
def get(self):
return self.bar()
class Bar(Foo):
def bar(self):
return "hello world"
, вероятно, не очень хороший код в любом случае, независимо от того, расширяет ли Foo класс View в django-rest-framework. По сути, вы нарушаете foo.get, предполагая, что у него есть метод bar, а это не так.
>>> foo = Foo()
>>> foo.get()
AttributeError: 'Foo' object has no attribute 'bar'
Это:
>>> bar = Bar()
>>> bar.get()
будет работать. Но вы по сути разорили Фу, написав это так. По крайней мере, предоставьте метод заглушки.
Несмотря на это, вы не опубликовали свой urls.py, поэтому я не уверен, пытаетесь ли вы выполнить Foo.as_view () или Bar.as_view (). Я протестировал его с помощью djangorestframework.views.View. и, как и ожидалось,
#urls.py
from testviews.views import Foo, Bar
urlpatterns = patterns('',
url(r'^$', Bar.as_view(), name='home'),
)
у меня отлично работает, тогда как,
urlpatterns = patterns('',
url(r'^$', Foo.as_view(), name='home'),
)
не по той причине, что приведенный выше код не работает.