33 lines
1.3 KiB
Python
33 lines
1.3 KiB
Python
from django.http import HttpResponse
|
|
from django.views.decorators.http import require_POST
|
|
#from django.contrib.auth.decorators import login_required # optional but recommended
|
|
|
|
def trigger_my_action(request):
|
|
# 1. Run your Django module/function
|
|
result = "1"
|
|
print('here')
|
|
# 2. Return ONLY the HTML fragment you want to show on the page
|
|
# This will replace the content inside the "hx-target" div
|
|
return HttpResponse("Done!")
|
|
|
|
|
|
#@login_required
|
|
@require_POST
|
|
def change_schedule(request):
|
|
# HTMX sends these via standard POST data
|
|
schedule_id = request.POST.get('schedule_id')
|
|
server_name = request.POST.get('server_name')
|
|
|
|
if not schedule_id or not server_name:
|
|
return HttpResponse("<span style='color: red;'>Missing parameters.</span>", status=400)
|
|
|
|
try:
|
|
# --- Your Core Logic Here ---
|
|
# e.g., Server.objects.filter(name=server_name).update(schedule_id=schedule_id)
|
|
print(f"Updating {server_name} to schedule profile {schedule_id}")
|
|
|
|
# Return a success message that will instantly inject into the server's status div
|
|
return HttpResponse("<span style='color: green;'>✓ Updated successfully!</span>")
|
|
|
|
except Exception as e:
|
|
return HttpResponse(f"<span style='color: red;'>Error: {str(e)}</span>", status=500) |