在Pegawai
模型中,我需要两个ForeignKey
:
Jabatan
模型unit_kerja
模型的Jabatan
字段如何将这些应用于我的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
答案 0 :(得分:2)
没有诸如字段外键之类的东西,但是无论如何您都不需要它。您始终可以使用多次遍历来访问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
然后简单地使用
{{1}}