Skip to content

Instantly share code, notes, and snippets.

@pydanny
Created July 15, 2011 21:21
Show Gist options
  • Select an option

  • Save pydanny/1085571 to your computer and use it in GitHub Desktop.

Select an option

Save pydanny/1085571 to your computer and use it in GitHub Desktop.
from django.conf import settings
from django.contrib import messages
from django.contrib.auth.models import User
from django.contrib.auth.decorators import login_required
from django.core.urlresolvers import reverse
from django.http import HttpResponseRedirect, HttpResponse, HttpResponseForbidden, HttpResponseNotFound
from django.shortcuts import render_to_response, get_object_or_404
from django.template import RequestContext
from django.template.loader import render_to_string
from django.views.generic import list_detail
from uni_form.helpers import FormHelper, Submit, Reset
from blarg.profiles.forms import ProfileForm
from blarg.profiles.models import Profile
@login_required
def profile_detail(request, username, template_name="profiles/profile_detail.html"):
user = get_object_or_404(User, username=username)
profile = get_object_or_404(Profile, user=user)
return render_to_response(template_name,
{
"profile": profile,
},
context_instance=RequestContext(request)
)
@login_required
def profile_edit(request, template_name="profiles/profile_edit.html"):
helper = FormHelper()
submit = Submit('edit','Edit')
helper.add_input(submit)
reset = Reset('reset','Reset')
helper.add_input(reset)
profile = get_object_or_404(Profile, user=request.user)
form = ProfileForm(request.POST or None, request.FILES or None, instance=profile)
if form.is_valid():
form.save()
messages.add_message(request, messages.INFO, msg)
return HttpResponseRedirect(reverse("profile_detail", kwargs={"username":profile.user.username }))
return render_to_response(template_name,
{
"profile": profile,
"form": form,
"helper":helper,
},
context_instance=RequestContext(request)
)
@login_required
def profile_list(request, page=None, template_name="profiles/profile_list.html"):
"""
List all public profiles
"""
qs = Profile.objects.filter().order_by("last_name", "first_name")
return list_detail.object_list(
request,
qs,
allow_empty=True,
template_name=template_name,
template_object_name='profile',
paginate_by=25,
page=page,
)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment