我有以下工厂:
class MonthFactory(factory.django.DjangoModelFactory):
class Meta:
model = Month
year = factory.Faker("random_int", min=2014, max=2022)
month = factory.Faker("random_int", min=1, max=12)
年份和月份在我的Django类中都是唯一的:
class Meta:
unique_together = (
"month",
"year",
)
当我想为一个测试创建两个对象时,我们假设:
month1 = MonthFactory()
month2 = MonthFactory()
有时候我中了头奖,得到:
django.db.utils.IntegrityError: duplicate key value violates unique constraint
因为Faker得到了两个对象相同的月份和年份。有没有办法防止这种情况?
1条答案
按热度按时间qxgroojn1#
这看起来像是try/except使用django的数据库异常的情况。假设你在数据库中没有其他的项目(如果你有,你可能也需要在month 1中这样做)。