我不知道如何篩選Django
中的ManyToMany
。我想獲得LanguageLevel
對象,至少與一個UserProfile
連接。如何正確過濾反轉ManyToMany?
在人類中:所有語言(如至少一個用戶)都會說這種語言。
我有一個模型:
class LanguageLevel(models.Model):
...
和
class UserProfile(models.Model):
...
language_levels = models.ManyToManyField('LanguageLevel', blank=True, related_name='translators')
...
已經嘗試過:
active_language_levels = LanguageLevel.objects.filter(lambda x: len(x.translators)!=0)
和
for language_level in LanguageLevel.objects.all():
print language_level.translators
if len(language_level.translators)>0:
print 'ok'
print language_level
else:
print 'no'
print language_level
它產生異常,我會自己檢查異常,但我完全不明白這是怎麼工作的。異常值:\t 無法將關鍵字'language_levels'解析爲字段。選擇是:id,language,language_id,level,level_id,price_multiplier,譯者 –
對不起,它的'UserProfile.objects.all()。values('language_levels__id')' –
哦,是的,它確實有道理。謝謝! –