Попытки использовать подмешать, чтобы создать представление класса на основе в Django, но получает следующее сообщение об ошибке:Джанго класса на основе Mixin вид не возвращает объект HttpResponse
ValueError: The view twitter.views.TwitterExampleView didn't return an HttpResponse object.
Как показано в приведенном ниже коде , Я расширяю из представления создание базы TwitterView для приложения для обработки сообщений об ошибках, возвращаемых из Twitter. Это представление дополнительно расширено для TwitterNetworkView, где сеть Twitter подключена к представлению. Другие классы допускают некоторое преобразование с параметрами, передаваемыми в запросы. Последний класс, TwitterExampleView, включает в себя как mixin для преобразования параметров, так и TwitterNetworkView. Метод get возвращает в качестве заполнителя строку «blah». Только когда он возвращается в диспетчеризацию, это ответ, сделанный так, что я пропускаю?
class TwitterView(View):
def dispatch(self, request, *args, **kwargs):
try:
response = super(TwitterView, self).dispatch(request, *args, **kwargs)
return render_response(request, response)
except TwitterApiException, e:
return return_error(request, e, e.status_code)
class TwitterNetworkView(TwitterView):
def dispatch(self, request, *args, **kwargs):
self.network = get_network_or_404(request.user, kwargs['network_id'])
super(TwitterNetworkView, self).dispatch(request, *args, **kwargs)
class DefineParamsMixin(object):
def get_params(self):
return null
class TwitterPagedDefineParams(DefineParamsMixin):
def get_params(self):
return define_params(
Param('page'),
Param('since'),
Param('before'),
Param('limit', transform_func=int)
)
class TwitterExampleView(TwitterPagedDefineParams, TwitterNetworkView):
def get(self, request, *args, **kwargs):
return "blahhhhh"
хорошо, не уверен если я понимаю ваш вопрос. Однако сообщение об ошибке имеет смысл. так как вы вернули 'blahhhh' в ваши методы .get(). Я имею в виду, независимо от того, как вы создаете свое представление, django ожидает объект HttpResponse. –
Что возвращаются ваши вызовы 'render_response' и' return_error'? Если я не пропущу что-то в цепочке наследования, это то, что подготовит окончательное возвращаемое значение. Получение 'response =" blahhhhh "' в вашем случае 'TwitterExampleView'. –
render_response -> return HttpResponse (data, content_type = content_type, status = status) –