def METHOD_NAME(request, news_pk):
    """
    Allows an editor to edit an existing news item
    :param request: HttpRequest object
    :param news_pk: PK of an NewsItem object
    :return: HttpResponse object
    """
    new_items = models.NewsItem.objects.filter(content_type=request.model_content_type,
                                               object_id=request.site_type.pk).order_by('-posted')
    news_item = get_object_or_404(models.NewsItem, pk=news_pk)
    form = forms.NewsItemForm(instance=news_item)
    new_file = None
    if 'delete_image' in request.POST:
        delete_image_id = request.POST.get('delete_image')
        file = get_object_or_404(core_models.File, pk=delete_image_id)
        if file.owner == request.user or request.user.is_staff:
            file.delete()
            messages.add_message(request, messages.SUCCESS, 'Image deleted')
        else:
            messages.add_message(request, messages.WARNING, 'Only the owner or staff can delete this image.')
        return redirect(reverse('core_manager_edit_news', kwargs={'news_pk': news_item.pk}))
    if request.POST:
        form = forms.NewsItemForm(request.POST, instance=news_item)
        if request.FILES:
            uploaded_file = request.FILES.get('image_file')
            if request.model_content_type.name == 'journal':
                new_file = files.save_file_to_journal(request, uploaded_file, 'News Item', 'News Item', public=True)
                core_logic.resize_and_crop(new_file.journal_path(request.journal), [750, 324], 'middle')
            elif request.model_content_type.name == 'press':
                new_file = files.save_file_to_press(request, uploaded_file, 'News Item', 'News Item', public=True)
                core_logic.resize_and_crop(new_file.press_path(), [750, 324], 'middle')
        if form.is_valid():
            item = form.save(commit=False)
            if new_file:
                item.large_image_file = new_file
            item.save()
            return redirect(reverse('core_manager_news'))
    template = 'core/manager/news/index.html'
    context = {
        'news_item': news_item,
        'news_items': new_items,
        'action': 'edit',
        'form': form,
    }
    return render(request, template, context)