Exemplo n.º 1
0
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)