【发布时间】:2016-06-16 21:16:22
【问题描述】:
我有以下型号:
class Personne(BaseModel):
user = models.OneToOneField(User)
relations = models.ManyToManyField('self', through='PersonneRelation',
symmetrical=False,
related_name='personne_relations')
class PersonneRelation(BaseModel):
type_relation = models.IntegerField(
choices=[(a, b) for a, b in list(PersonneEnums.TAB_RELATIONS.items())],
default=PersonneEnums.RELATION_FRIEND)
src = models.ForeignKey('Personne', related_name='relation_src')
dst = models.ForeignKey('Personne', related_name='relation_dst')
在我看来,我有当前登录的用户通过
p_user = Personne.objects.get(user=view.request.user)
我想检索p_user 类型为PersonneEnums.RELATION_FRIEND 的所有关系
我尝试了很多方法,包括以下代码,但没有任何效果:
不起作用:
p_user.objects.filter(relations__type_relation__exact=PersonneEnums.RELATION_AMI)
不起作用:
Personne.objects.filter(
pk=p_user.pk,
relations__type_relation__exact=PersonneEnums.RELATION_AMI
)
有人可以向我解释为什么这不起作用吗?
【问题讨论】:
-
“不起作用”是什么意思?错误?结果无效?
标签: python django django-models django-orm