Hi,

I am now trying, for days, to get a tree like view from my assembly model 
into my template. I think I have read everything what I have found on 
StackOverflow and other sites. Somehow I am not able to get it working. I 
am trying to not use any 3rd party extensions => I'm happy to be proven 
wrong. But first let me explain my topic:

This are my models:

class Assembly(models.Model):
    reference = models.OneToOneField('products.Reference', 
on_delete=models.RESTRICT, verbose_name=_('reference'))
    subassembly = models.ManyToManyField(SubAssembly, blank=True, 
verbose_name=_('subassembly'))
    component = models.ManyToManyField(Component, blank=True, 
verbose_name=_('component'))

class SubAssembly(models.Model):
    reference = models.CharField(max_length=40, default=None)
    subassembly_class = models.ForeignKey(SubAssemblyClass, 
on_delete=models.CASCADE)
    nested_subassembly = models.ManyToManyField(
        'self', symmetrical=False, blank=True)

class SubAssemblyClass(models.Model):
    name = models.CharField(max_length=255)

class Component(models.Model):
    reference = models.CharField(max_length=40, unique=True)
    component_class = models.ForeignKey(ComponentClass, 
on_delete=models.CASCADE)
    nested_component = models.ManyToManyField('self', blank=True')

class ComponentClass(models.Model):
    name = models.CharField(max_length=255, unique=True)


For my view I am using the class based one. I am generally using CBV's

class AssemblyDetailView(LoginRequiredMixin, DetailView):
    model = Assembly
    template_name = "engineering/assembly/assembly_detail.html"

Now I want in my template all children of subassembly and component from 
one assembly like this:

assembly1
* subassembly1
* subassembly5
* component5
* component7
* component8
* subassembly6
* component7
* component8
* component1
* component2
* subassembly2
* component3
* subassembly3
* subassembly6
* component1
* component2
* component1
* component3

The depth can be infinity but for now there will be only 3-5 levels. I 
don’t care if it will be Depth-first-search or Breadth-first-search. I read 
a lot about recursive common table expressions and raw queries. I haven’t 
found a way to code the logic with my complicated ManyToMany fields.

I hope there is someone out there who can help me out. Maybe I have build 
up the models in a wrong way and that’s causing the problems why I am not 
able to solve it or or something else.

Thank you for your help!

-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-users/95ef56a4-6fc5-4cdd-9d4a-9090e364a308n%40googlegroups.com.

Reply via email to