Django Как предотвратить повторяющиеся экземпляры в базе данных - PullRequest
0 голосов
/ 04 февраля 2012

Я работаю с Django, и мне нужно убедиться, что у меня нет одинаковых предметов в одной таблице.Я не совсем уверен, как можно быть уверенным, что вы не вводите одну и ту же информацию в таблицу дважды.Например, если я зарегистрированный пользователь, который должен ввести свое имя и адрес, как мне убедиться, что этот один и тот же пользователь с одинаковыми именем и адресом не может сохранять свою информацию дважды.

Обратите внимание, что пользователям предлагается вводить свою информацию в ModelForm.

Ответы [ 2 ]

2 голосов
/ 04 февраля 2012

Вы можете использовать уникальную опцию . Было бы реализовано что-то вроде:

class someModel(models.Model):
    name = models.CharField(max_length=100)
    address1 = models.CharField(max_length=100)
    class Meta:
        unique_together = ("name", "address1")
0 голосов
/ 01 ноября 2016

чтобы изменить уникальное сообщение об ошибке вместе вы можете сделать это: Django: Как переопределить сообщение об ошибке unique_together?

class ArticleForm(ModelForm):
    class Meta:
        error_messages = {
            NON_FIELD_ERRORS: {
                'unique_together': "%(model_name)s's %(field_labels)s are not unique.",
            }
        }
...