Django Как да предотвратите дублиращи се копия в базата данни

Работя с Django и трябва да съм сигурен, че нямам идентични елементи в една и съща таблица. Не съм напълно сигурен как би се уверил, че не въвеждате абсолютно същата информация в таблица два пъти. Например, ако съм регистриран потребител, който трябва да въведе своето име и адрес, как да се уверя, че на същия потребител, със същото име и адрес, няма право да запазва информацията си два пъти.

Имайте предвид, че потребителите са поканени да въведат своята информация в ModelForm.


person JohnnyCash    schedule 04.02.2012    source източник


Отговори (2)


Можете да използвате уникална опция. Ще бъде приложено нещо като:

class someModel(models.Model):
    name = models.CharField(max_length=100)
    address1 = models.CharField(max_length=100)
    class Meta:
        unique_together = ("name", "address1")
person Dean    schedule 04.02.2012
comment
как бихте го накарали да върне конкретна фраза, ако възникне този определен тип грешка? - person JohnnyCash; 05.02.2012
comment
Това би бил и моят въпрос :D - person BoJack Horseman; 27.02.2014

за да промените уникалното заедно съобщение за грешка, можете да направите това: 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.",
            }
        }
person Leah    schedule 31.10.2016