我想检查该对象是否存在于数据库中,如果不存在,则将其添加到数据库中。
我试过了:

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/

10-12 19:29