Если вы все еще не в Django 1.9+, позор вам (и мне), и оставьте это в своей форме. Это похоже на ответ @ jeremy-lewis, но у меня было несколько проблем с ним.
брать пробелы (обрезку) с конца charField в Django?
Вот моя модель, как вы можете видеть, я пытался использовать чистые методы, но они никогда не запускались.
Я также пытался сделатьname.strip()
, models.charField().strip()
но они тоже не работают.
Есть ли способ заставить charField автоматически обрезаться для меня?
Благодарю.
from django.db import models
from django.forms import ModelForm
from 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:
# This line doesn't do anything??
#self.full_clean()
Employee.clean(self)
except ValidationError, e:
print e.message_dict
super(Employee, self).save(*args, **kwargs) # Real save
# If I uncomment this, I get an 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
# I have no idea if this method is being called or not
def full_clean(self):
return super(Employee), self.clean().strip()
#return self.clean['name'].strip()
Отредактировано: обновлен код до последней версии. Я не уверен, что я делаю неправильно, поскольку он все еще не удаляет пробелы (обрезает) поле имени.