Как создать поле фильтра "CHOICES" из модели на основе уникальных значений из другой модели?

Добрый день!

Буду очень благодарен за любую помощь.

У меня есть две связанные таблицы - модели Django.

Поле "nomer_kotl = models.TextField()" имеет ассоциацию с другой моделью.

А в качестве "choices = CHOICES" я хотел бы иметь "уникальные" значения из модели "Nomerkotelnoy(models.Model)"

Как заставить "choices = CHOICES" модели (EmployeeModel(models.Model)) получать значения из поля "nomer_kotl = models.TextField()" модели (Nomerkotelnoy(models.Model)) ?

При создании формы для выбора данных из таблицы модели для отображения в приложении на сайте. - Думаю, как сделать, чтобы в форме был выбор в виде "select dropdown" - выбор только одного значения

class Nomerkotelnoy(models.Model):
    nomer_id = models.IntegerField(primary_key=True)
    nomer_kotl = models.TextField()

    def __str__(self):
        return self.nomer_kotl

CHOICES = (
    ("1", "1"),
    ("2", "2"),
    ("3", "3"),
    ("4", "4"),
    ("5", "5"),
    ("6", "6"),
    ("7", "7"),
    ("8", "8"),
)


class EmployeeModel(models.Model):
    empid = models.IntegerField(primary_key=True)
    empname = models.CharField(max_length=50)
    salary = models.IntegerField()
    joindate = models.DateField()
    nomer_kotl = models.ForeignKey(Nomerkotelnoy, default=1, on_delete=models.CASCADE,
    choices = CHOICES)
    
    
    class Meta:
        db_table = "employee"

Вы не установили choices параметр для models.ForeignKey поля.

Нужная вам функциональность обеспечивается ModelForm из коробки. Django поле модели ForeignKey отображается на форму ModelChoiceField, которая создает выпадающий список, заполненный значениями из Nomerkotelnoy.

Измените определение формы, которое вы используете в своем приложении, чтобы исправить это.

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