from django.http import HttpRequest, HttpResponse from django_components import Component, types class ABTestingPage(Component): class Media: js = ("https://cdn.tailwindcss.com?plugins=forms,typography,aspect-ratio,container-queries",) template: types.django_html = """ {% load component_tags %} A/B Testing Example

A/B Testing Components

This example shows how a single component can render different versions based on a parameter (or a random choice), perfect for A/B testing.

Variant A (Old Offer)

Rendered with use_new_version=False

{% component "offer_card" use_new_version=False savings_percent=10 / %}

Variant B (New Offer)

Rendered with use_new_version=True

{% component "offer_card" use_new_version=True savings_percent=25 / %}

Variant C (Random)

Rendered without use_new_version. Reload the page to see a different version.

{% component "offer_card" savings_percent=15 / %}
""" class View: def get(self, request: HttpRequest) -> HttpResponse: return ABTestingPage.render_to_response(request=request)