def edit(request, id=None): if id is not None: require_permissions(request.user, 'lists.change_list') instance = get_object_or_404(List, pk=id, user=request.user) else: require_permissions(request.user, 'lists.add_list') instance = List(user=request.user) if request.method == 'POST': form = ListForm(request.POST, instance=instance) if form.is_valid(): try: l = form.save() if id is None: msg = u"La lista “%s” é stata creata correttamete." else: msg = u"La lista “%s” é stata rinominata correttamete." messages.success(request, msg % l.name) return redirect(l) except IntegrityError: form._errors = { 'name': form.error_class([u'Non è possibile usare lo stesso nome per più liste']) } else: form = ListForm(instance=instance) return render_to_response('lists/edit.html', { 'form': form, 'instance': instance, 'editing': id is not None, }, request)