Пример #1
0
def edit_item(request, item_id):
    if not request.user.is_staff:
        raise Http403

    item = Item.objects.get(pk=item_id)
    revision = item.get_latest(lang=get_language())

    if request.method == 'POST':
        form = NewRevisionForm(request.POST, instance=revision)
        args = {'form': form, 'item': item}
        if form.is_valid():
            # We want to save a new one
            form.instance.id = None
            # For now just assume that missing revision == missing content
            if revision is None:
                content = Content(item=item, language=get_language())
                content.save()
                revision = form.save(commit=False)
                revision.content = content
                revision.save()
            else:
                form.save()
            # First iteration, at least news are shown on main page
            return redirect('/')
    else:
        form = NewRevisionForm(instance=revision)
        args = {'revision': revision, 'item': item, 'form': form}

    return render_to_response('edit_item.html',
                              args,
                              context_instance=RequestContext(request))