[英]Django two ForeignKey from same model
在Pegawai
模型中,我需要兩個ForeignKey
來:
Jabatan
模型 Jabatan
模型的unit_kerja
字段 如何將這些應用於我的Pegawai
模型? 只有第一個有效。
這是我的models.py
:
from django.db import models
from django.urls import reverse
# Create your models here.
class UnitKerja(models.Model):
nama_unit_kerja = models.CharField(max_length=100)
def get_absolute_url(self):
return reverse("users:unitkerja")
def __str__(self):
return self.nama_unit_kerja
class Jabatan(models.Model):
nama_jabatan = models.CharField(max_length=100)
level_jabatan = models.IntegerField()
unit_kerja = models.ForeignKey(UnitKerja, on_delete=models.CASCADE, blank=True, null=True)
def get_absolute_url(self):
return reverse("users:jabatan")
def __str__(self):
return self.nama_jabatan
class Pegawai(models.Model):
nip = models.CharField(max_length=100, unique=True)
nama_pegawai = models.CharField(max_length=100)
alamat = models.CharField(max_length=255)
jabatan = models.ForeignKey(Jabatan, on_delete=models.CASCADE)
#this line#
unit_kerja = models.ForeignKey(Jabatan.unit_kerja, on_delete=models.CASCADE, blank=True, null=True)
def get_absolute_url(self):
return reverse("users:pegawai")
def __str__(self):
return self.pegawai
沒有字段的外鍵之類的東西,但是無論如何您都不需要它。 您始終可以使用多次遍歷來訪問UnitKerja
實例,例如:
my_unit_kerja = my_pegawai.jabatan.unit_kerja
或者,如果上面的工作太多,您可以擁有一個助手屬性:
class Pegawai(models.Model):
...
@property
def unit_kerja(self):
return self.jabatan.unit_kerja
然后簡單地使用
my_pegawai.unit_kerja
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.