Hi,
I believe you're right, this code is incorrect.
Would you mind opening a ticket for this on
https://code.djangoproject.com/newticket ?
Thanks,
Baptiste
On 06/23/2013 05:29 PM, Michal Slįdek wrote:
Hello!
I tried to use following examples:
https://docs.djangoproject.com/en/dev/topics/class-based-views/mixins/
import json
from django.http import HttpResponse
class JSONResponseMixin(object):
response_class = HttpResponse
def render_to_response(self, context, **response_kwargs):
response_kwargs['content_type'] = 'application/json'
return self.response_class(
self.convert_context_to_json(context),
**response_kwargs
)
def convert_context_to_json(self, context):
return json.dumps(context)
from django.views.generic.detail import SingleObjectTemplateResponseMixin
class HybridDetailView(JSONResponseMixin, SingleObjectTemplateResponseMixin,
BaseDetailView):
def render_to_response(self, context):
# Look for a 'format=json' GET argument
if self.request.GET.get('format','html') == 'json':
return JSONResponseMixin.render_to_response(self, context)
else:
return SingleObjectTemplateResponseMixin.render_to_response(self,
context)
It seems to me, that attribute response_class = HttpResponse in
JSONReponseMixin overlaps attribute response_class = TemplateResponse
in TemplateResponseMixin (and SingleObjectTemplateResponseMixin) and
breaks non-json requests.
Michal
--
You received this message because you are subscribed to the Google
Groups "Django developers" group.
To unsubscribe from this group and stop receiving emails from it, send
an email to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/django-developers.
For more options, visit https://groups.google.com/groups/opt_out.
--
You received this message because you are subscribed to the Google Groups "Django
developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/django-developers.
For more options, visit https://groups.google.com/groups/opt_out.