# Django Widget Tweaks

***

**1. Add a custom class to a widget:**

```
from django import forms
from django_widget_tweaks.widgets import AttributeWidgetMixin

class CustomTextInput(AttributeWidgetMixin, forms.TextInput):
    attrs = {'class': 'my-custom-class'}
```

**2. Add multiple custom classes to a widget:**

```
from django import forms
from django_widget_tweaks.widgets import AttributeWidgetMixin

class CustomTextInput(AttributeWidgetMixin, forms.TextInput):
    attrs = {'class': 'my-custom-class1 my-custom-class2'}
```

**3. Add a custom style to a widget:**

```
from django import forms
from django_widget_tweaks.widgets import AttributeWidgetMixin

class CustomTextInput(AttributeWidgetMixin, forms.TextInput):
    attrs = {'style': 'color: red;'}
```

**4. Add a custom placeholder to a widget:**

```
from django import forms
from django_widget_tweaks.widgets import AttributeWidgetMixin

class CustomTextInput(AttributeWidgetMixin, forms.TextInput):
    attrs = {'placeholder': 'Enter your name'}
```

**5. Add a custom title to a widget:**

```
from django import forms
from django_widget_tweaks.widgets import AttributeWidgetMixin

class CustomTextInput(AttributeWidgetMixin, forms.TextInput):
    attrs = {'title': 'This is a custom title'}
```

**6. Add a custom maxlength to a widget:**

```
from django import forms
from django_widget_tweaks.widgets import AttributeWidgetMixin

class CustomTextInput(AttributeWidgetMixin, forms.TextInput):
    attrs = {'maxlength': '10'}
```

**7. Add a custom pattern to a widget:**

```
from django import forms
from django_widget_tweaks.widgets import AttributeWidgetMixin

class CustomTextInput(AttributeWidgetMixin, forms.TextInput):
    attrs = {'pattern': '[a-zA-Z0-9]+'}
```

**8. Add a custom autocomplete to a widget:**

```
from django import forms
from django_widget_tweaks.widgets import AttributeWidgetMixin

class CustomTextInput(AttributeWidgetMixin, forms.TextInput):
    attrs = {'autocomplete': 'off'}
```

**9. Add a custom autofocus to a widget:**

```
from django import forms
from django_widget_tweaks.widgets import AttributeWidgetMixin

class CustomTextInput(AttributeWidgetMixin, forms.TextInput):
    attrs = {'autofocus': 'autofocus'}
```

**10. Add a custom disabled to a widget:**

```
from django import forms
from django_widget_tweaks.widgets import AttributeWidgetMixin

class CustomTextInput(AttributeWidgetMixin, forms.TextInput):
    attrs = {'disabled': 'disabled'}
```

**11. Add a custom readonly to a widget:**

```
from django import forms
from django_widget_tweaks.widgets import AttributeWidgetMixin

class CustomTextInput(AttributeWidgetMixin, forms.TextInput):
    attrs = {'readonly': 'readonly'}
```

**12. Add a custom required to a widget:**

```
from django import forms
from django_widget_tweaks.widgets import AttributeWidgetMixin

class CustomTextInput(AttributeWidgetMixin, forms.TextInput):
    attrs = {'required': 'required'}
```

**13. Add a custom size to a widget:**

```
from django import forms
from django_widget_tweaks.widgets import AttributeWidgetMixin

class CustomTextInput(AttributeWidgetMixin, forms.TextInput):
    attrs = {'size': '20'}
```

**14. Add a custom step to a widget:**

```
from django import forms
from django_widget_tweaks.widgets import AttributeWidgetMixin

class CustomNumberInput(AttributeWidgetMixin, forms.NumberInput):
    attrs = {'step': '0.1'}
```

**15. Add a custom min to a widget:**

```
from django import forms
from django_widget_tweaks.widgets import AttributeWidgetMixin

class CustomNumberInput(AttributeWidgetMixin, forms.NumberInput):
    attrs = {'min': '0'}
```

**16. Add a custom max to a widget:**

```
from django import forms
from django_widget_tweaks.widgets import AttributeWidgetMixin

class CustomNumberInput(AttributeWidgetMixin, forms.NumberInput):
    attrs = {'max': '100'}
```

**17. Add a custom multiple to a widget:**

```
from django import forms
from django_widget_tweaks.widgets import AttributeWidgetMixin

class CustomSelectMultiple(AttributeWidgetMixin, forms.SelectMultiple):
    attrs = {'multiple': 'multiple'}
```

**18. Add a custom size to a widget:**

```
from django import forms
from django_widget_tweaks.widgets import AttributeWidgetMixin

class CustomSelect(AttributeWidgetMixin, forms.Select):
    attrs = {'size': '5'}
```

**19. Add a custom multiple to a widget:**

```
from django import forms
from django_widget_tweaks.widgets import AttributeWidgetMixin

class CustomCheckboxInput(AttributeWidgetMixin, forms.CheckboxInput):
    attrs = {'multiple': 'multiple'}
```

**20. Add a custom checked to a widget:**

```
from django import forms
from django_widget_tweaks.widgets import AttributeWidgetMixin

class CustomCheckboxInput(AttributeWidgetMixin, forms.CheckboxInput):
    attrs = {'checked': 'checked'}
```

**21. Add a custom value to a widget:**

```
from django import forms
from django_widget_tweaks.widgets import AttributeWidgetMixin

class CustomRadioInput(AttributeWidgetMixin, forms.RadioInput):
    attrs = {'value': 'custom-value'}
```

**22. Add a custom checked to a widget:**

```
from django import forms
from django_widget_tweaks.widgets import AttributeWidgetMixin

class CustomRadioInput(AttributeWidgetMixin, forms.RadioInput):
    attrs = {'checked': 'checked'}
```

**23. Add a custom file type to a widget:**

```
from django import forms
from django_widget_tweaks.widgets import AttributeWidgetMixin

class CustomFileInput(AttributeWidgetMixin, forms.FileInput):
    attrs = {'type': 'file'}
```

**24. Add a custom accept to a widget:**

```
from django import forms
from django_widget_tweaks.widgets import AttributeWidgetMixin

class CustomFileInput(AttributeWidgetMixin, forms.FileInput):
    attrs = {'accept': '.jpg,.png'}
```

**25. Add a custom multiple to a widget:**

```
from django import forms
from django_widget_tweaks.widgets import AttributeWidgetMixin

class CustomFileInput(AttributeWidgetMixin, forms.FileInput):
    attrs = {'multiple': 'multiple'}
```

**26. Add a custom date type to a widget:**

```
from django import forms
from django_widget_tweaks.widgets import AttributeWidgetMixin

class CustomDateInput(AttributeWidgetMixin, forms.DateInput):
    attrs = {'type': 'date'}
```

**27. Add a custom time type to a widget:**

```
from django import forms
from django_widget_tweaks.widgets import AttributeWidgetMixin

class CustomTimeInput(AttributeWidgetMixin, forms.TimeInput):
    attrs = {'type': 'time'}
```

**28. Add a custom datetime type to a widget:**

```
from django import forms
from django_widget_tweaks.widgets import AttributeWidgetMixin

class CustomDateTimeInput(AttributeWidgetMixin, forms.DateTimeInput):
    attrs = {'type': 'datetime'}
```

**29. Add a custom datetime-local type to a widget:**

```
from django import forms
from django_widget_tweaks.widgets import AttributeWidgetMixin

class CustomDateTimeLocalInput(AttributeWidgetMixin, forms.DateTimeLocalInput):
    attrs = {'type': 'datetime-local'}
```

**30. Add a custom month type to a widget:**

```
from django import forms
from django_widget_tweaks.widgets import AttributeWidgetMixin

class CustomMonthInput(AttributeWidgetMixin, forms.MonthInput):
    attrs = {'type': 'month'}
```

**31. Add a custom week type to a widget:**

```
from django import forms
from django_widget_tweaks.widgets import AttributeWidgetMixin

class CustomWeekInput(AttributeWidgetMixin, forms.WeekInput):
    attrs = {'type': 'week'}
```

**32. Add a custom url type to a widget:**

```
from django import forms
from django_widget_tweaks.widgets import AttributeWidgetMixin

class CustomURLInput(AttributeWidgetMixin, forms.URLInput):
    attrs = {'type': 'url'}
```

**33. Add a custom email type to a widget:**

```
from django import forms
from django_widget_tweaks.widgets import AttributeWidgetMixin

class CustomEmailInput(AttributeWidgetMixin, forms.EmailInput):
    attrs = {'type': 'email'}
```

**34. Add a custom tel type to a widget:**

```
from django import forms
from django_widget_tweaks.widgets import AttributeWidgetMixin

class CustomTelInput(AttributeWidgetMixin, forms.TelInput):
    attrs = {'type': 'tel'}
```

**35. Add a custom color type to a widget:**

```
from django import forms
from django_widget_tweaks.widgets import AttributeWidgetMixin

class CustomColorInput(AttributeWidgetMixin, forms.ColorInput):
    attrs = {'type': 'color'}
```

**36. Add a custom search type to a widget:**

```
from django import forms
from django_widget_tweaks.widgets import AttributeWidgetMixin

class CustomSearchInput(AttributeWidgetMixin, forms.SearchInput):
    attrs = {'type': 'search'}
```
