[Django] Model foreign key

Rex Chiang
Apr 19, 2021

--

models.py:

  1. Column buyer in class Order is the ForeignKey point to class User.
  2. on_delete = models.CASCADE means that if User deleted then column name would be deleted too.
class User(models.Model): 
name = models.TextField()

class Order(models.Model):
product_name = models.TextField()
buyer = models.ForeignKey(User, on_delete = models.CASCADE)

views.py :

  1. Both of functions can get the orders with the ForeignKey buyer.
  2. The second function replace objects to lowercase model name + “_set”.
def search_orders_for_buyer(request, buyer):
buyer = User.objects.get(name = buyer)
all_orders_for_buyer = Order.objects.filter(buyer = buyer)

def search_orders_for_buyer(request, buyer):
buyer = User.objects.get(name = buyer)
all_orders_for_buyer = buyer.order_set.all()

models.py:

Column buyer in class Order is the ForeignKey with relate_name point to class User.

class User(models.Model):
name = models.TextField()

class Order(models.Model):
product_name = models.TextField()
buyer = models.ForeignKey(User, related_name = "orders")

views.py :

  1. Use relate_name in ForeignKey buyer to get the orders.
def search_orders_for_buyer(request, buyer):
buyer = User.objects.get(name = buyer)
all_orders_for_buyer = buyer.orders.all()

--

--

No responses yet