from liveview import liveview_handler, send from django.template.loader import render_to_string from app.expenses.models import Category @liveview_handler("update_subcategories") def update_subcategories(consumer, content): category_id = content.get("form", {}).get("category", "") if not category_id: send(consumer, {"target": "#subcategory-wrapper", "html": ""}) return try: category = Category.objects.get(id=category_id) subcategories = category.subcategories.all() html = render_to_string( "pages/expenses/partials/subcategory_select.html", {"subcategories": subcategories}, ) send(consumer, {"target": "#subcategory-wrapper", "html": html}) except Category.DoesNotExist: send(consumer, {"target": "#subcategory-wrapper", "html": ""})