我有两个在数据库中创建记录的方案。我们假设我创建的用户为foo@bar.com
。
foo@bar.com
foo@bar.com
场景2 引发错误,指出已存在foo@bar.com
的记录。我认为我需要在方案之间设置一个清理数据库的钩子。
这种情况的最佳做法是什么?在场景之间调用flushdb
命令?还是交易回滚?还有什么?
答案 0 :(得分:0)
在两种方案中使用get_or_create
方法。别忘了get_or_create
返回一个元组:
>>> from django.contrib.auth.models import User
>>> superman, created = User.objects.get_or_create(username='kal-el')
>>> superman
<User: kal-el>
>>> created
True
>>> superman_returns, created_again = User.objects.get_or_create(username='kal-el')
>>> superman_returns
<User: kal-el>
>>> created_again
False
https://docs.djangoproject.com/en/1.8/ref/models/querysets/#get-or-create