fields.py 918 B

1234567891011121314151617181920212223242526272829303132
  1. from __future__ import absolute_import
  2. from django import forms
  3. from django.db import models
  4. from .widgets import MDEditorWidget
  5. class MDTextFormField(forms.fields.CharField):
  6. """ custom form field """
  7. def __init__(self, config_name='default', *args, **kwargs):
  8. kwargs.update({
  9. 'widget': MDEditorWidget(config_name=config_name)
  10. })
  11. super(MDTextFormField, self).__init__(*args, **kwargs)
  12. class MDTextField(models.TextField):
  13. """ custom model field """
  14. def __init__(self, *args, **kwargs):
  15. self.config_name = kwargs.pop("config_name", "default")
  16. super(MDTextField, self).__init__(*args, **kwargs)
  17. def formfield(self, **kwargs):
  18. defaults = {
  19. 'form_class': MDTextFormField,
  20. 'config_name': self.config_name
  21. }
  22. defaults.update(kwargs)
  23. return super(MDTextField, self).formfield(**defaults)