def edit_event(request, slug):
    instance = Event.objects.get(slug=slug)
    selected_categories = Event.get_category_names(instance.slug)
    print(selected_categories, "selected_categories")
    form = EventForm(
        request.POST or None,
        request.FILES or None,
        instance=instance)
    if request.method == 'POST':
        if form.is_valid():
            event = form.save(commit=False)
            event.added_by = request.user
            default_time = "00:00:00"

            starts_at = request.POST.get('starts_at_time') or default_time
            ends_at = request.POST.get('ends_at_time') or default_time

            if request.POST.get('starts_at'):
                event.starts_at = get_datetime(
                    request.POST.get('starts_at'),
                    starts_at
                )

            if request.POST.get('ends_at'):
                event.ends_at = get_datetime(
                    request.POST.get('ends_at'),
                    ends_at
                )

            if request.FILES.get('cover_image'):
                event.cover_image = request.FILES.get('cover_image')
            event.save()

            categories = request.POST.getlist("category_select")
            if len(categories) != 0:
                event.category.clear()
            for current_category in categories:
                category = Category.objects.filter(
                    name=current_category
                )
                event.category.add(*list(category))
            event.save()
            context = {
                'success_message': "edited event"
            }
            return render(request, 'CRUDops/successfully.html', context)

    starts_date = None
    starts_time = None

    if instance.starts_at:
        starts_date = str(instance.starts_at.date())
        starts_time = str(instance.starts_at.time())

    ends_date = None
    ends_time = None

    if instance.ends_at:
        ends_date = str(instance.ends_at.date())
        ends_time = str(instance.ends_at.time()),

    context = {
        'form': form,
        'categories': Category.objects.active(),
        'editing': True,
        'starts_date': starts_date,
        'ends_date': ends_date,
        'starts_time': starts_time,
        'ends_time': ends_time,
        'selected_categories': selected_categories
    }
    return render(
        request,
        'events/create_event.html',
        context
    )