Tuesday, November 5, 2019

Parent-child-grandchild list

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 %}

--
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 django-users+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/9ec52c50-bd75-487d-9d3f-2759d71ac201%40googlegroups.com.

No comments:

Post a Comment