Как установить многоуровневое поле внешнего ключа в Django?
У меня есть модель, которая выглядит следующим образом
# models.py
from django.db import models
class Level_0(models.Model):
Kode = models.CharField(max_length=10, null=False, blank=False, default="")
class Level_1(models.Model):
Kode = models.CharField(max_length=10, null=False, blank=False, default="")
Level_0= models.ForeignKey(Level_0, on_delete=models.CASCADE)
class Level_2(models.Model):
Kode = models.CharField(max_length=10, null=False, blank=False, default="")
Level_1 = models.ForeignKey(Level_1, on_delete=models.CASCADE)
# Level_0 = ????????????
# how do I create a connection to Level_0? a field that is automatically filled with Level_0?
Я хочу иметь поле в Level_2, которое автоматически подключается к Level_0 через Level_1. Как мне добавить это поле в мою модель Level_2?
Я нашел ответ. Я просто установил значение по умолчанию!
class Level_2(models.Model):
Kode = models.CharField(max_length=10, null=False, blank=False, default="")
Level_1 = models.ForeignKey(Level_1, on_delete=models.CASCADE)
# The answer!!
Level_0 = models.ForeignKey(Level_0, on_delete=models.CASCADE)
подключается через Level_1 и django автоматически присваивает значение для вас, когда вы вводите данные. Пока что это работает для меня.
Это работает, если я использую Django Admin, и Django автоматически подключается, исправляя его, даже если вы заполните
Level_0 чем-то другим. Он исправит его до правильного значения.