Skip to content

Instantly share code, notes, and snippets.

@joonas
Created September 16, 2011 09:44
Show Gist options
  • Save joonas/1221694 to your computer and use it in GitHub Desktop.
Save joonas/1221694 to your computer and use it in GitHub Desktop.
# urls.py (not complete by any means)
url(r'^$', 'display_lead_list', name='lead_list'),
url(r'^(?P<id>\d+)/edit/$', 'lead_edit', name='lead_edit'),
# views.py
@login_required
def display_lead_list(request, template_name='lead/lead_list.html'):
LeadFormSet = modelformset_factory(Lead)
formset = LeadFormSet(queryset=Lead.objects.filter(user=request.user)
return render_to_response(template_name, {'formset': formset})
@login_required
def lead_edit(request, id=None):
if request.method == 'POST':
lead = get_object_or_404(Lead, pk=id)
LeadForm = modelform_factory(Lead)
form = LeadForm(request.POST, instance=lead)
if form.is_valid():
form.save()
return redirect('lead_list')
else:
# Do what you want with invalid forms, maybe give the user a message?
else:
raise Http404
# lead/lead_list.html (only the part that renders forms)
{% for form in formset %}
<form action="{% url lead_edit form.instance.pk %}" type="POST">
{{ form.instance.title (or whatever you use as the identifier) }}: {{ form.status }}
</form>
{% endfor %}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment