CSRF exempt HTMX views (localhost-only app)
This commit is contained in:
@@ -7,6 +7,7 @@ from decimal import Decimal
|
|||||||
|
|
||||||
from django.http import HttpResponse
|
from django.http import HttpResponse
|
||||||
from django.shortcuts import render, get_object_or_404
|
from django.shortcuts import render, get_object_or_404
|
||||||
|
from django.views.decorators.csrf import csrf_exempt
|
||||||
from django.views.decorators.http import require_POST, require_http_methods
|
from django.views.decorators.http import require_POST, require_http_methods
|
||||||
|
|
||||||
from .models import (
|
from .models import (
|
||||||
@@ -194,6 +195,7 @@ def log_page(request):
|
|||||||
|
|
||||||
# --- HTMX Actions ---
|
# --- HTMX Actions ---
|
||||||
|
|
||||||
|
@csrf_exempt
|
||||||
@require_POST
|
@require_POST
|
||||||
def pantry_add(request):
|
def pantry_add(request):
|
||||||
name = request.POST.get("ingredient_name", "").strip()
|
name = request.POST.get("ingredient_name", "").strip()
|
||||||
@@ -238,6 +240,7 @@ def pantry_add(request):
|
|||||||
return render(request, "kitchen/partials/pantry_table.html", ctx)
|
return render(request, "kitchen/partials/pantry_table.html", ctx)
|
||||||
|
|
||||||
|
|
||||||
|
@csrf_exempt
|
||||||
@require_http_methods(["DELETE"])
|
@require_http_methods(["DELETE"])
|
||||||
def pantry_delete(request, item_id):
|
def pantry_delete(request, item_id):
|
||||||
item = get_object_or_404(PantryItem, id=item_id)
|
item = get_object_or_404(PantryItem, id=item_id)
|
||||||
@@ -246,6 +249,7 @@ def pantry_delete(request, item_id):
|
|||||||
return render(request, "kitchen/partials/pantry_table.html", ctx)
|
return render(request, "kitchen/partials/pantry_table.html", ctx)
|
||||||
|
|
||||||
|
|
||||||
|
@csrf_exempt
|
||||||
@require_POST
|
@require_POST
|
||||||
def shopping_generate(request):
|
def shopping_generate(request):
|
||||||
"""Generate smart shopping list and return updated HTML."""
|
"""Generate smart shopping list and return updated HTML."""
|
||||||
@@ -293,6 +297,7 @@ def shopping_generate(request):
|
|||||||
return render(request, "kitchen/partials/shopping_list.html", {"items": items})
|
return render(request, "kitchen/partials/shopping_list.html", {"items": items})
|
||||||
|
|
||||||
|
|
||||||
|
@csrf_exempt
|
||||||
@require_POST
|
@require_POST
|
||||||
def shopping_toggle(request, item_id):
|
def shopping_toggle(request, item_id):
|
||||||
item = get_object_or_404(ShoppingListItem, id=item_id)
|
item = get_object_or_404(ShoppingListItem, id=item_id)
|
||||||
@@ -305,6 +310,7 @@ def shopping_toggle(request, item_id):
|
|||||||
return render(request, "kitchen/partials/shopping_list.html", {"items": items})
|
return render(request, "kitchen/partials/shopping_list.html", {"items": items})
|
||||||
|
|
||||||
|
|
||||||
|
@csrf_exempt
|
||||||
@require_POST
|
@require_POST
|
||||||
def shopping_clear(request):
|
def shopping_clear(request):
|
||||||
ShoppingListItem.objects.filter(checked=True).delete()
|
ShoppingListItem.objects.filter(checked=True).delete()
|
||||||
|
|||||||
Reference in New Issue
Block a user