[Django] Model foreign key
Apr 19, 2021
models.py:
- Column buyer in class Order is the ForeignKey point to class User.
- 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 :
- Both of functions can get the orders with the ForeignKey buyer.
- 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 :
- 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()