Как установить многоуровневое поле внешнего ключа в 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 чем-то другим. Он исправит его до правильного значения.

Вернуться на верх