Mongoengine类型对象'unicode'没有属性'_meta'

时间:2015-09-17 20:14:41

标签: python django mongoengine

以下是我在django模型文件中的一小部分代码:

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)

所以我对我的模型进行了其他一些更改,但无法找到为什么这个问题在各处都发生。

1 个答案:

答案 0 :(得分:0)

GenericReferenceField期望具有元属性的对象具有文档名称而不是unicode,因此这解决了所有问题:

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

它搜索具有_meta属性的对象列表,并正确筛选右Reference