Форум сайта python.su
Предположим у нас есть модель и форма для изменения этой модели:
#models.py
class Test(Model):
filed1 = ...
field2 = ...
...
class Meta:
unique_together = ('field1', 'field2')
#forms.py
class TestForm(ModelForm):
class Meta:
model = Test
exclude = ('field2')
class TestForm(ModelForm):
curr_field1 = ...
class Meta:
model = Test
def __init__(self, test, *args, **kwargs):
super(ModelForm, self).__init__(*args, **kwargs)
self.curr_field1 = test.field1
self.field2 = test.field2
def clean_field1(self):
field1 = self.cleaned_data['field1']
field2 = self['field2'].data
if Test.objects.filter(field1 = field1, field2 = field2):
if field1 <> self.curr_field1:
raise ValidationError(u'field1 and field2 isn't unique!')
Офлайн
Так для ModelForm unique_together должен сам проверяться. Какую версию Джанги вы используете?
Офлайн
Если не ошибаюсь 1.2.1 (сейчас проверить точно не могу).
В том-то и дело, что не проверяет, при введении не уникальных данных валидация проходит успешно и уже сыпется только при вызове метода save() формы.
Офлайн