在django中,为什么不允许:
ItemInstance.objects.filter(provider_id__icontains='sting'))
但是它确实允许:
ItemInstance.objects.filter(provider__name__icontains='sting'))
provider_id
和provider__name
的值相同,因为外键是name
字段。为什么它不允许第一种引用它的方法?
答案 0 :(得分:2)
我怀疑您使用自然键作为主键:名称字段上有primary=True
吗?如果是这样,请使用此
ItemInstance.objects.filter(provider_pk__icontains='sting'))
id
字段仅在未指定主键的情况下存在。 Django容纳了我提供的pk
,它是任何字段作为您的主键的代理