Ведение в в модели некрасиво/не рекомендуется, вам нужно будет что-то вроде:
class MyModel(models.Model):
type1 = models.IntegerField()
type2 = models.IntegerField()
def save(self, *args, **kwargs):
if self.type1 != self.type2:
return super().save(*args, **kwargs)
else:
return # cancel the save - which isn't recommended
Это не рекомендуется, так как пользователь не получает какие-либо отзывы о том, что пошло не так, и отмена сохранения может привести к неправильное поведение. (сигналы, переадресации и т. д. могут быть сбой)
Если бы вы могли, я бы посоветовал сделать это как подтверждение формы.
class MyForm(forms.Form):
type1 = forms.IntegerField()
type2 = forms.IntegerField()
def clean(self):
cleaned_data = super().clean()
if cleaned_data['type1'] == cleaned_data['type2']:
raise forms.ValidationError("Type1 and Type2 need to be different")
РЕДАКТИРОВАТЬ 1: Исправить отступ.
EDIT 2: Добавлен пример проверки формы.
EDIT 3: Добавлено больше информации о том, почему это не рекомендуется.
РЕДАКТИРОВАТЬ 4: Прочитать неверно, обновленный ответ.
игнорировать мою предыдущую ссылку, я думаю, что это именно то, что вы просите http://stackoverflow.com/questions/2281179/adding-extra-constraints-into-fields-in-django – serg