41554 blogs · [ { "id": "01a08c5b-7f40-739b-b5f3-ac9b3419c582", "title": "Building accessible web forms in Django", "url": "https://www.valentinog.com/blog/django-accessible-web-forms/", "published_at": "2025-03-15T11:36:39+00:00" }, { "id": "01a08c5b-7f41-70ba-a9d1-5f72e964145b", "title": "htmx snippets and examples", "url": "https://www.valentinog.com/blog/htmx-snippets/", "published_at": "2025-01-26T15:05:37+00:00" }, { "id": "01a08c5b-7f41-70ba-a9d1-5f72ea4221ca", "title": "Rendering form fields as group in Django", "url": "https://www.valentinog.com/blog/django-form-field-as-group/", "published_at": "2025-01-24T18:21:43+00:00" }, { "id": "01a08c5b-7f41-70ba-a9d1-5f72eb282140", "title": "Progressive enhancement in Django with htmx", "url": "https://www.valentinog.com/blog/django-progressive-enhancement-htmx/", "published_at": "2025-01-22T17:05:12+00:00" }, { "id": "01a08c5b-7f41-70ba-a9d1-5f72eb846de0", "title": "Exploring techniques for untrusted Python code execution in agentic workflows", "url": "https://www.valentinog.com/blog/caging-the-agent/", "published_at": "2024-12-06T18:41:03+00:00" }, { "id": "01a08c5b-7f41-70ba-a9d1-5f72ec3b3978", "title": "django-filter: filtering a foreign key model property", "url": "https://www.valentinog.com/blog/django-filter-foreign-key/", "published_at": "2024-09-06T11:00:37+00:00" }, { "id": "01a08c5b-7f41-70ba-a9d1-5f72ecea7d8b", "title": "Implementing the strategy pattern in Django with JavaScript import maps", "url": "https://www.valentinog.com/blog/django-import-maps/", "published_at": "2023-09-08T14:02:45+00:00" }, { "id": "01a08c5b-7f41-70ba-a9d1-5f72ed7f55b5", "title": "Avoiding death by thousands ifs with the strategy pattern", "url": "https://www.valentinog.com/blog/strategy-pattern-javascript/", "published_at": "2023-03-04T13:36:23+00:00" }, { "id": "01a08c5b-7f41-70ba-a9d1-5f72edb3bf70", "title": "Single-pages without the single-page with django2-tables, django-filter, and htmx", "url": "https://www.valentinog.com/blog/django2-tables-htmx/", "published_at": "2023-02-12T17:42:06+00:00" }, { "id": "01a08c5b-7f41-70ba-a9d1-5f72eddcf93c", "title": "Today I re-learned: Python function default arguments are retained between executions", "url": "https://www.valentinog.com/blog/tirl-python-default-arguments/", "published_at": "2023-01-18T16:01:51+00:00" } ] posts Claim your blog
Back to valentinog.com
Blog · corpus.blog/blogs/valentinog.com/posts

valentinog.com

valentinog.com

2025

2024

2023