python - (Django) Trim whitespaces from charField -
how strip whitespaces (trim) end of charfield in django?
here model, can see i've tried putting in clean methods these never run.
i've tried doing name.strip()
, models.charfield().strip()
these not work either.
is there way force charfield trim automatically me?
thanks.
from django.db import models django.forms import modelform django.core.exceptions import validationerror import datetime class employee(models.model): """(workers, staff, etc)""" name = models.charfield(blank=true, null=true, max_length=100) def save(self, *args, **kwargs): try: # line doesn't anything?? #self.full_clean() employee.clean(self) except validationerror, e: print e.message_dict super(employee, self).save(*args, **kwargs) # real save # if uncomment this, typeerror: unsubscriptable object #def clean(self): # return self.clean['name'].strip() def __unicode__(self): return self.name class meta: verbose_name_plural = 'employees' class admin:pass class employeeform(modelform): class meta: model = employee # have no idea if method being called or not def full_clean(self): return super(employee), self.clean().strip() #return self.clean['name'].strip()
edited: updated code latest version. not sure doing wrong it's still not stripping whitespace (trimming) name field.
model cleaning has called (it's not automatic) place self.full_clean()
in save method.
http://docs.djangoproject.com/en/dev/ref/models/instances/#django.db.models.model.full_clean
as form, need return stripped cleaned data.
return self.cleaned_data['name'].strip()
somehow think tried bunch of stuff doesn't work. remember forms , models 2 different things.
check on forms docs on how validate forms http://docs.djangoproject.com/en/dev/ref/forms/validation/
super(employee), self.clean().strip() makes no sense @ all!
here's code fixed:
class employee(models.model): """(workers, staff, etc)""" name = models.charfield(blank=true, null=true, max_length=100) def save(self, *args, **kwargs): self.full_clean() # performs regular validation clean() super(employee, self).save(*args, **kwargs) def clean(self): """ custom validation (read docs) ps: why have null=true on charfield? avoid check name """ if self.name: self.name = self.name.strip() class employeeform(modelform): class meta: model = employee def clean_name(self): """ if enters form ' hello ', whitespace stripped. """ return self.cleaned_data.get('name', '').strip()
Comments
Post a Comment