Django respektiert nicht das max_length Attribut des TextField Modellfeldes während der Validierung eines ModelForms.Django TextField max_length Validierung für ModelForm
So definiere ich eine LimitedTextField von der models.TextField geerbt und hinzugefügt Validierung models.CharField ähnliche Bits:
from django.core import validators
class LimitedTextField(models.TextField):
def __init__(self, *args, **kwargs):
super(LimitedTextField, self).__init__(*args, **kwargs)
self.max_length = kwargs.get('max_length')
if self.max_length:
self.validators.append(validators.MaxLengthValidator(self.max_length))
def formfield(self, **kwargs):
defaults = {'max_length': self.max_length}
defaults.update(kwargs)
return super(LimitedTextField, self).formfield(**defaults)
Aber das hat noch keinen Einfluss auf Modelform Validierung.
Was fehlt mir? Jede Hilfe wird sehr geschätzt.
Danke,
OMAT
Ab Django 1.7 kann das 'max_length' Attribut in TextField verwendet werden –