برقرار کردن یک ارتباط یک به چند بین دو مدل در جنگو
توضیحات:
در جنگو، میتوانید ارتباط یک به چند بین دو مدل برقرار کنید با استفاده از فیلد ForeignKey
یا ManyToManyField
.
برای ایجاد ارتباط یک به چند، شما باید یکی از مدلها را به عنوان مدل اصلی و دیگری را به عنوان مدل فرعی انتخاب کنید. به عنوان مثال، فرض کنید میخواهید یک ارتباط یک به چند بین مدل Author
و Book
بسازید. در این حالت، Author
مدل اصلی و Book
مدل فرعی خواهد بود.
استفاده از ForeignKey
:
from django.db import models
class Author(models.Model):
name = models.CharField(max_length=100)
class Book(models.Model):
title = models.CharField(max_length=100)
author = models.ForeignKey(Author, on_delete=models.CASCADE)
در این حالت، هر کتاب متعلق به یک نویسنده است و با استفاده از فیلد ForeignKey
، ارتباط یک به چند بین Author
و Book
برقرار شده است.
استفاده از ManyToManyField
:
from django.db import models
class Author(models.Model):
name = models.CharField(max_length=100)
class Book(models.Model):
title = models.CharField(max_length=100)
authors = models.ManyToManyField(Author)
در این حالت، هر کتاب میتواند توسط چند نویسنده نوشته شود و با استفاده از فیلد ManyToManyField
، ارتباط یک به چند بین Author
و Book
برقرار شده است.
بعد از تعریف ارتباط یک به چند بین دو مدل، میتوانید از این ارتباط در کوئریها و ایجاد اشیاء مدل استفاده کنید تا اطلاعات مرتبط با هم در پایگاه داده ذخیره و بازیابی شوند.
موفق باشید
A.J
پست های مرتبط:
فروشگاه سورسا:
سورسا ، یک خانواده!
شما میتوانید از سورس های آماده به راحتی و با کپی پیست در پروژه خود استفاده بفرمایید
بله! سورسا به عنوان اولین و برترین مرجع سورس کد های آماده، تمامی سورس کد ها در زبان های مختلف را به صورت رایگان در اختیار شما قرار میدهد.
اگر سورس مد نظر شما تفاوتی با سورس فعلی دارد یا اینکه درخواست سورس دیگری را دارید میتوانید با کارشناسان سورسا در ارتباط باشید.
سورسا به عنوان مرجع سورس در تلاش است سورس کد ها و آموزش های تمامی زبان های برنامه نویسی مانند GO C++ Python C PHP SQL JS و… را تحت پوشش قرار داد