0
我的項目中有一個Translator
模型。此型號具有ManyToManyField
languages_verified
(verbose_name ='users_languages_verified')和languages_not_verified
。我想獲取至少一個languages_verified
集合中的所有對象Language
。Django - 如何過濾ManyToMany關係?
所以,如果譯者x和y:
x.languages_verified = ['FR','EN']
x.languages_not_verified = ['RU','SK']
y.languages_verified = ['RU']
y.languages_not_verified = ['SK','CZ']
那麼輸出將是['FR','EN','RU']
(不是 'SK',也沒有 'CZ',因爲他們不是在至少一個languages_verified設置)
會有可能做到這一點,例如這樣:
lang_ver_set = []
for language in Language.objects.all():
for translator in Translator.objects.all():
if language in translator.languages_verified():
lang_ver_set.append(language)
break
但我不知道這是如何做到這一點最有效的方式。 Django有很多神奇的濾鏡技巧,比如verbose_name__in...
,這可能會更快,但我找不到解決方案。