我想确认这是检查空查询集的正确方法,如果这是我遇到 UNIQUE 约束错误的原因。
syn_check= Synonym.objects.filter(MD.objects.get(**filter_dict), synonym_type=Stype.objects.filter(description=values.capitalize().strip()), synonym_name=key)
if not syn_check:
print 'unavailable synonym', key, values
syn = Synonym()
syn.synonym_type=Stype.objects.filter(description=values.capitalize().strip()
syn.synonym_name = key.strip()
syn.save()
Run Code Online (Sandbox Code Playgroud)
我在做什么奇怪的事情吗?我也用过if not syn_check.count(),遇到同样的问题。
这是回溯:
Traceback (most recent call last):
File "manage.py", line 10, in <module>
execute_from_command_line(sys.argv)
File "/home/project/.virtualenvs/project/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 385, in execute_from_command_line
utility.execute()
File "/home/project/.virtualenvs/project/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 377, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/home/project/.virtualenvs/project/local/lib/python2.7/site-packages/django/core/management/base.py", line 288, in run_from_argv
self.execute(*args, **options.__dict__)
File "/home/project/.virtualenvs/project/local/lib/python2.7/site-packages/django/core/management/base.py", line 338, in execute
output = self.handle(*args, **options)
File "/home/project/PycharmProjects/project/project/management/commands/back_populate_data.py", line 53, in handle
loaded_syn …Run Code Online (Sandbox Code Playgroud) 我正在尝试在Django应用程序上进行一些测试。我已经为测试数据库使用了数据库镜像。当我尝试运行少量测试时,似乎“默认数据库”中的数据在镜像测试数据库中不可用。
'default': { #'sqlite': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
'OPTIONS':{
'timeout': 180,
},
# 'TEST':{
# 'MIRROR': 'default',
#
# }
},
'replica': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
'OPTIONS':{
'timeout': 180,
},
'TEST_MIRROR': 'default'
}
Run Code Online (Sandbox Code Playgroud)
我的测试:
data_school = DataSchool.objects.all()
self.assertTrue(data_school.exists())
Run Code Online (Sandbox Code Playgroud)
我很困惑,数据库管理员将test_mirrors配置为默认数据库的只读副本。理论上,默认数据库中的任何数据都可以用于测试吗?如果我有任何配置错误,请告诉我们。谢谢
django ×2