我想检查该对象是否存在于数据库中,如果不存在,则将其添加到数据库中。
我试过了:
if not MyModel.objects().get(surname='foo'):
management.call_command('loaddata', 'Bootstrap_data', verbosity=0)#adds this object from fixtures
但是我从 db(sqlite3) 得到一个查询错误。这种对象验证的方式如何解决?
错误是:
DoesNotExist at /
MyModel matching query does not exist.
这是因为数据库中没有这个姓氏的对象。
最佳答案
通常你会使用 get_or_create 。
model_instance = MyModel.objects.get_or_create(surname='foo')
您真的不应该将
management.call_command
用于这样的事情。也就是说,如果我误解了并且您有充分的理由,请尝试以下操作:
try:
MyModel.objects.get(surname='foo')
except MyModel.DoesNotExist:
management.call_command(....)
或者
if not MyModel.objects.filter(surname='foo').exists():
management.call_command(....)
关于python - Django 对象存在,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8761981/