

def object_detail(request, queryset, object_id=None, slug=None, slug_field='slug', template_name=None, template_name_field=None, template_loader=loader, extra_context=None, context_processors=None, template_object_name='object', mimetype=None):
    '\n    Generic detail of an object.\n\n    Templates: ``<app_label>/<model_name>_detail.html``\n    Context:\n        object\n            the object\n    '
    if (extra_context is None):
        extra_context = {
            
        }
    model = queryset.model
    if object_id:
        queryset = queryset.filter(pk=object_id)
    elif (slug and slug_field):
        queryset = queryset.filter(**{
            slug_field: slug,
        })
    else:
        raise AttributeError('Generic detail view must be called with either an object_id or a slug/slug_field.')
    try:
        obj = queryset.get()
    except ObjectDoesNotExist:
        raise Http404(('No %s found matching the query' % model._meta.verbose_name))
    if (not template_name):
        template_name = ('%s/%s_detail.html' % (model._meta.app_label, model._meta.object_name.lower()))
    if template_name_field:
        template_name_list = [getattr(obj, template_name_field), template_name]
        t = template_loader.select_template(template_name_list)
    else:
        t = template_loader.get_template(template_name)
    c = RequestContext(request, {
        template_object_name: obj,
    }, context_processors)
    for (key, value) in extra_context.items():
        if callable(value):
            c[key] = value()
        else:
            c[key] = value
    response = HttpResponse(t.render(c), mimetype=mimetype)
    populate_xheaders(request, response, model, getattr(obj, obj._meta.pk.name))
    return response

dataset/ETHPy150Open AppScale/appscale/AppServer/lib/django-1.2/django/views/generic/list_detail.py object_detail/original