Django Цепной выпадающий список для формы - PullRequest
0 голосов
/ 07 ноября 2018

У меня есть следующая модель:

class Technology(models.Model):
    short_name = models.CharField(max_length=30, null=True, unique=True)
    name = models.CharField(max_length=100, unique=True)
    provider = models.CharField(max_length=100)

    def __str__(self):
        return self.name

class Entity(models.Model):
    short_name = models.CharField(max_length=30, null=True)
    name = models.CharField(max_length=100)
    description = models.CharField(max_length=500, null=True)
    is_storage = models.CharField(max_length=1)
    is_presentation = models.CharField(max_length=1)
    technology = models.ForeignKey(Technology, on_delete=models.CASCADE)

    class Meta:
        unique_together = (('short_name', 'technology'),)

    def __str__(self):
        return '{0} - {1}'.format(self.technology.name, self.name)

class Node(models.Model):
    name = models.CharField(max_length=255, unique=True)
    display_name = models.CharField(max_length=100, null=True)
    description = models.CharField(max_length=500, null=True)
    entity = models.ForeignKey(Entity, on_delete=models.CASCADE)

    class Meta:
        unique_together = (('name', 'entity'),)

    def __str__(self):
        return self.name

Я хотел бы построить следующую форму для модели узла:

  1. - выпадающий список из модели технологии
  2. entity - раскрывающийся список из модели Entity - ограничен выбранной технологией из первого раскрывающегося списка (сверху)
  3. name - поле char для имени узла
  4. остальные поля Node

Проблема в первом выпадающем списке - как этого добиться? Я пробовал : https://simpleisbetterthancomplex.com/tutorial/2018/01/29/how-to-implement-dependent-or-chained-dropdown-list-with-django.html но раскрывающийся список технологий не появляется на странице формы, и в большинстве примеров все поля формы взяты из модели для вставки / обновления. Пожалуйста, предоставьте также определение шаблона. Большое спасибо, Pawel

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...