Отключение дублирования записей в базе данных || Django
В настоящее время у меня есть форма настроек, которая вводит свои записи в базу данных Django SQLite. Я явно не хочу, чтобы пользователь ввел 2 настройки с одинаковым именем.
Я пытался использовать цикл for для проверки существования данных, но просто не могу добиться правильного результата.
Вот мой текущий код для этой формы:
Views.py:
def newSetting(request):
form = SettingsForm()
if request.method == 'POST':
form = SettingsForm(request.POST)
if form.is_valid():
form.save()
return render(request , 'main/newSetting.html' , {'form':form})
newSetting.html:
Model.py:
class SettingsClass(models.Model):
Complex = models.CharField(choices=complex_list , max_length = 15 ,default='1')
Trial_balance_Year_to_date= models.BooleanField(default = False)
Trial_balance_Monthly=models.BooleanField(default = False)
Income_Statement_Year_to_date=models.BooleanField(default = False)
Income_Statement_Monthly=models.BooleanField(default = False)
Age_Analysis=models.BooleanField(default = False)
Balance_Sheet=models.BooleanField(default = False)
Repair_and_Maintenance_General_Ledger=models.BooleanField(default = False)
Mayor_capital_Items_General_Ledger=models.BooleanField(default = False)
def __str__(self):
return (self.Complex + ' Settings')
Я хочу проверить наличие дубликатов записей в базе данных с помощью поля "Complex"
Согласно @IainShelvington 'комментарию.
Решением является добавление unique=True
к настройке ключевых полей при объявлении их в Model.py
Подобно этому:
Complex = models.CharField(choices=complex_list , max_length = 15 ,default='1' , unique=True)