2015-09-17 85 views
0

下面我有我的Django模型的文件中的代碼它的一小部分:Mongoengine對象類型「unicode」時有沒有屬性「_meta」

class Component(Document): 
    id = IntField(primary_key=True) 

class GenericComponent(Document): 
    id = IntField(primary_key=True) 

class Block(Document): 
    components = GenericReferenceField() # can be Component or GenericComponent 

# This line gives the error: 
component_ids = request.POST.getlist('components') 
Block.objects.filter(components__in=component_ids) 

所以我在我的模型和couldn作出其他多項變更我不明白爲什麼這個問題到處都在發生。

回答

0

GenericReferenceField願同元屬性的對象,它具有與文檔的名稱,而不是一個unicode的所以這解決了一切:

component_ids = GenericComponent.objects.filter(
     id__in=request.POST.getlist('components')) 
Block.objects.filter(components__in=component_ids) 

它搜索與_meta屬性和過濾器正確的右Reference對象的列表。

相關問題