It looks like m2m on the implementation side. I.e. in django could do Task.objects.filter(projects__title__startswith=“SomeProjectRef”).distinct() or whatever other filter on m2m. The implementation is circular and have no idea how to even approach a test as it is. Saw the link here How do I create a bidirectional link between two doctypes? - #2 by rmehta. It is the correct decision to remove the task project table. I’m now using the task calendar which is fine.