我想检查数据库中是否存在该对象,如果不存在,则将其添加到数据库中。 我试过了:
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/