from crispy_forms.layout import Field


class BasketItemField(Field):
    template = "purchase/snippets/basket_item.html"

    def __init__(self, *args, product, **kwargs):
        super().__init__(*args, **kwargs)
        self.product = product

    def render(self, *args, **kwargs):
        extra_context = kwargs.get("extra_context", {})
        extra_context.update({"product": self.product})
        kwargs["extra_context"] = extra_context
        return super().render(*args, **kwargs)
