Parent-child-grandchild list

15 views
Skip to first unread message

Terry Sankar

unread,
Nov 5, 2019, 2:18:32 PM11/5/19
to Django users

class Person(models.Model):

    """

    Class that manages the person model fields

    """

    first_name = models.CharField(max_length=40)

    last_name = models.CharField(max_length=45)


 def __str__(self):

        return self.first_name


class Order(models.Model):


    po       = models.CharField(null=False, blank=False, max_length=255)

    date     =  models.CharField(null=False, blank=True, max_length=25,default="")

    person   = models.ForeignKey('Person', null=False, blank=False,

                            on_delete=models.CASCADE, related_name='orders')


    def __str__(self):

        return self.po


class Item(models.Model):

    "e.g. items in the orders"


    order = models.ForeignKey('Order', null=False, blank=False,

                            on_delete=models.CASCADE, related_name='items')


    item        = models.CharField(max_length=25,default="", blank=True)

    description = models.CharField(max_length=255,default="", blank=True)


   def __str__(self):

        return self.po


## So Person has Orders, Orders has Items


I am trying to list all persons, their orders, ond items:


e.g.

 Jonh Doe

    Order #1 

        Apples

    Order #2 

        Grapes

        Figs

        Dates

May Jane

     Order #1 

          Pencils

          Notepads

          Pens

          Colored postits

Henry James

       Fish

       Beans


So for loops:

  For person in person in object_list:

    ? First_name

      For orders( of a person )

          For items ( of this order )

          endfor

       endfor

   endfor

here is my list.html template


{% block title %}List{% endblock %}

{% block body %}

<h1>Current List of Buyers</h1>

<ul>

  {% for person in object_list %}

    <li>{{ person.first_name }} {{ person.last_name }} 

  <br>{{ person.company}} , {{ person.email }}

  <br>{{ person.address}} ,  {{ person.address1 }}

  <br>{{ person.city }} ,  {{ person.state }} ,  {{ person.zip_code}}

        {% johnhorders=Order.objects.filter(person__first_name='John') %}


           {% for order in johnorders %}

             <br> {{ order.po}} {{order.date }} {{order.expected}}   

           </ul> 

          <a href="{% url 'update' order.id %}">Update order information

          <a href="{% url 'delete' order.id %}">Delete this order</a>

         {% endfor%} 

    <a href="{% url 'update' person.id %}">Update information

    <a href="{% url 'delete' person.id %}">Delete this buyer</a>

  </li>

  <br>

  {%endfor%}

</ul>

{% endblock %}

Reply all
Reply to author
Forward
0 new messages