Как создать поле фильтра "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
.
Измените определение формы, которое вы используете в своем приложении, чтобы исправить это.