# Custom resolvers Use `FormAlpineMixin` when you want to define your own resolvers — for example, when working outside of Django Admin or when the built-in containers don't match your HTML structure. ## Defining resolvers Set `window.DjangoFormAlpine.resolvers` in a ` ``` Then use those prefixes in your form: ```python from django_form_alpine import FormAlpineMixin class MyForm(FormAlpineMixin, forms.ModelForm): my_field = forms.CharField( widget=forms.TextInput(attrs={ "x-add-model-data": "myFieldState", "x-my-section-show": "myFieldState !== ''", }) ) ``` ## Combining with the admin preset If you want custom resolvers **and** the built-in admin ones, set `useAdminResolvers: true`. Custom resolvers are merged on top — your keys win over the defaults. ```html ``` In this case you can use `AdminAlpineMixin` (which loads `admin.js`) or `FormAlpineMixin` with `admin.js` included separately. ## Resolver signature ```js (el: HTMLElement) => HTMLElement | null ``` - `el` — the form input element (`input`, `select`, or `textarea`). - Return the target container, or `null` to skip applying directives for this resolver on this element.