رابطه یک به یک - OneToOne


در این نوع رابطه یک رکورد از یک مدل می‌تواند فقط با یک رکورد از مدل دیگر مرتبط باشد. برای مثال یک کاربر فقط می‌تواند یک پروفایل داشته باشد و همینطور یک ‌پروفایل نیز فقط متعلق به یک کاربر است.

برای استفاده از رابطه one-to-one در مدل‌های جنگو باید از گزینه OneToOneField برای فیلد استفاده نمود تا بدین صورت رابطه یک به یک(one-to-one) را تعریف کرد. برای درک بهتر، مدلی را فرض می‌گیریم که نام شرکت­های خودرو سازی را یدک می­کشد و همچنین مدل دیگری که مدیرعامل شرکت­ها را شامل می‌شود. این دو مدل مفهوم فیلد OneToOne را ایجاد خواهند کرد چرا که:

- یک شرکت خودروسازی تنها می‌تواند یک مدیرعامل داشته باشد.


- یک نفر می‌تواند تنها در یک شرکت خودروسازی به عنوان میدعامل مشغول به کار شود.

فیلد company در مدل ceo بصورت OneToOne به مدل company مرتبط شده است. بدین صورت از طریق فیلد company به تمامی اطلاعات مدل company دسترسی خواهد داشت. همچنین در مدل company، از طریق مدل ceo به تمامی فیلدهای آن دسترسی خواهیم داشت.

حال با فرض داشتن داده­های دو مدل به­صورت ذیل، می‌توان جستجوی رکوردها کوئری - را انجام داد


با کوئری از سمت مدل company:


و با کوئری از سمت مدل ceo: