2015-09-17 1 views
0

Ниже его небольшой части кода у меня есть на файлах моего Джанго модели:Mongoengine объект типа «юникода» не имеет атрибута «_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) 

Так что я сделал несколько других изменений моих моделей и не мог Не находите, почему эта проблема происходит повсюду.

ответ

0

GenericReferenceField ожидает объект с мета атрибут, который имеет имя документа вместо unicode так это решается все:

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

Он ищет список объектов с _meta атрибутом и фильтров правильно на право Reference.