gpt4 book ai didi

python - Django 两个来自同一模型的外键

转载 作者:行者123 更新时间:2023-12-01 01:06:56 26 4
gpt4 key购买 nike

Pegawai 模型中,我需要两个 ForeignKey 来:

  1. Jabatan 模型
  2. 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

关于python - Django 两个来自同一模型的外键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55251202/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com