Выполненный 'alsamixer' в терминале и проверке, если основной звук отключен звук.
oo является небесшумным и , мм для бесшумного режима.
<час>
Должна быть вызвана очистка модели (она не автоматическая), поэтому добавьте self.full_clean()
в свой метод сохранения.
http://docs.djangoproject.com/en/dev/ref/models/instances/#django.db.models.Model.full_clean
Что касается вашей формы, вам необходимо вернуть очищенные очищенные данные.
return self.cleaned_data['name'].strip()
Почему-то я думаю, что вы просто пытались сделать кучу вещей, которые не работают. Помните, что формы и модели - это две совершенно разные вещи.
Ознакомьтесь с документами по формам о том, как проверять формы http://docs.djangoproject.com/en/dev/ref/forms/validation/
super(Employee), self.clean().strip() makes no sense at all!
Вот ваш исправленный код:
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 then clean()
super(Employee, self).save(*args, **kwargs)
def clean(self):
"""
Custom validation (read docs)
PS: why do you have null=True on charfield?
we could avoid the check for name
"""
if self.name:
self.name = self.name.strip()
class EmployeeForm(ModelForm):
class Meta:
model = Employee
def clean_name(self):
"""
If somebody enters into this form ' hello ',
the extra whitespace will be stripped.
"""
return self.cleaned_data.get('name', '').strip()
Я рассматриваю это как декоратор. Я также усекаю значения полей, которые превышают значение max_length CharField.
from django import forms
from django import models
from django.db.models.fields import FieldDoesNotExist
from django.utils.encoding import smart_str
class CleanCharField(forms.CharField):
"""Django's default form handling drives me nuts wrt trailing
spaces. http://code.djangoproject.com/attachment/ticket/6362
"""
def clean(self, value):
if value is None:
value = u''
value = smart_str(value).strip()
value = super(forms.CharField, self).clean(value)
return value
def truncate_charfield(model):
"""decorator to truncate CharField data to model field max_length.
Apply to the clean method in views Form:
@truncate_charfield(MyModel)
def clean(self):
...
"""
def wrap(f):
def wrapped_f(*args):
f(*args)
d = args[0].cleaned_data
for field in model._meta.fields:
try:
mf = model._meta.get_field(field.name)
if isinstance(mf, models.CharField) and field.name in d:
d[field.name] = d[field.name][:mf.max_length]
except FieldDoesNotExist:
pass
return d
return wrapped_f
return wrap