Модульные тесты Django - django.db.utils.IntegrityError: дублированное значение ключа нарушает целостность
Какой лучший способ
class BankLoanApplicationFile(TestCase):
"""Test cases for loan_application.py file."""
def setUp(self) -> None:
"""Set up configuration."""
self.loan_product = mock.Mock(spec=LoanProduct)
self.loan_type = LoanType.objects.create()
self.loan_usage = LoanUsage.objects.create()
self.profession = Profession.objects.create(name='Architekt/in')
def tearDown(self) -> None:
self.loan_type.delete()
self.loan_usage.delete()
Это ошибка :
django.db.utils.IntegrityError: duplicate key value violates unique constraint.
Какой лучший способ игнорировать эту ошибку с помощью тестов Django, я прочитал несколько постов о подобной проблеме, но не нашел решения
EDIT :
Ниже представлены модели :
class CommonLoanOptions(models.Model):
name = models.CharField(_('Name'), max_length=64, unique=True)
is_active = models.BooleanField(_('Is Active'), default=True)
class Meta:
abstract = True
def __str__(self):
return f'{self.name}'
class LoanProduct(CommonLoanOptions):
"""LoanProduct Model."""
class Meta:
verbose_name = _('Loan Product')
verbose_name_plural = _('Loan Products')
ordering = ('id',)
class Profession(CommonLoanOptions):
"""Profession Model."""
class Meta:
verbose_name = _('Profession')
verbose_name_plural = _('Professions')
ordering = ('name',)
class LoanUsage(CommonLoanOptions):
"""LoanUsage Model."""
class Meta:
verbose_name = _('Loan Usage')
verbose_name_plural = _('Loan Usages')
Есть два возможных способа решения этой проблемы.
(рекомендуется) Придайте значение полям при создании записи:
Например:
self.loan_usage = LoanUsage.objects.create(name="any_name")
В файле models.py измените поле name следующим образом:
name = models.CharField(_('Name'), max_length=64, unique=True, blank=True)