Django多对多查询显示空或不成功
Django多对多查询显示空或不成功
我在查询多对多关系中的项目列表时遇到问题。我尝试查询的模型如下。这是一个模型,将指示工人选择“开放”,许多工人可以选择相同的“开放”。我正在尝试选择选择了“开放”的工人列表,但我没有成功。
class FavOpening(models.Model): opening = models.OneToOneField(Openings, blank=True, default=None) worker = models.ManyToManyField(Worker, blank=True, default=None) def __unicode__(self): return str(self.opening)
非常奇怪,因为我尝试了下面的内容,根据选择的工人(id-31)的开放类型,并且它可以工作,将打印出工人选择的开放。
employee = get_object_or_404(Worker, id=31) print employee.favopening_set.all()
但是,当我尝试使用下面的内容获取许多到许多中的工人时,它不起作用。说它没有“favopening_set”属性
openingobj = get_object_or_404(Openings, id=1) print openingobj.favopening_set.all()
我还尝试了下面的内容,根据打开(id = 1)获取工人列表,但我没有得到任何结果-显示Workers.Worker.None,这是不正确的,因为至少有一个工人选择了此打开。(我在管理员中检查过)
openingobj = get_object_or_404(Openings, id=1) print openingobj.favopening.worker
最后,我根据Django ORM中select_related和prefetch_related之间的区别是什么?的某些研究尝试了下面的内容,但它说无法通过开放实例访问管理器。
openingobj = get_object_or_404(Openings, id=1) openingobj.objects.prefetch_related('favopening_set').all()
admin 更改状态以发布 2023年5月24日