STRUCTURE
queryset = Customer.objects.all()
| | | |
| | | |_ Method [ .get(), .filter(), exclude() ]
variable | |
| |_ Model Objects
| Attribute
|
|_ Model Name
customers = Customer.objects.all()
firstCustomer = Customer.objects.first()
lastCustomer = Customer.objects.last()
customerByName = Customer.objects.get(name='Peter Piper')
customerById = Customer.objects.get(id=4)
firstCustomer.order_set.all()
order = Order.objects.first()
parentName = order.customer.name
products = Product.objects.filter(category="Out Door")
leastToGreatest = Product.objects.all().order_by('id')
greatestToLeast = Product.objects.all().order_by('-id')
productsFiltered = Product.objects.filter(tags__name="Sports")
''' (11)Bonus Q: If the customer has more than 1 ball, how would you reflect it in the database? A: Because there are many different products and this value changes constantly you would most likly not want to store the value in the database but rather just make this a function we can run each time we load the customers profile '''
#Returns the total count for number of time a "Ball" was ordered by the first customer ballOrders = firstCustomer.order_set.filter(product__name="Ball").count()
allOrders = {}
for order in firstCustomer.order_set.all():
if order.product.name in allOrders:
allOrders[order.product.name] += 1
else:
allOrders[order.product.name] = 1
#RELATED SET EXAMPLE
class ParentModel(models.Model):
name = models.CharField(max_length=200, null=True)
class ChildModel(models.Model):
parent = models.ForeignKey(Customer)
name = models.CharField(max_length=200, null=True)
parent = ParentModel.objects.first()
#Returns all child models related to parent
parent.childmodel_set.all()