Django Как добавить уровень в несколько выбранных - PullRequest
0 голосов
/ 02 мая 2011

Это очень сложный вопрос, на который я не могу ответить.

У меня есть три класса, TestSubject может иметь более одного предмета и один модуль может иметь более одного предмета.

class Module(models.Model):
    id = models.AutoField(primary_key=True)
    user = models.ForeignKey(User)

class Subject(models.Model):
    id = models.AutoField(primary_key=True)
    module = models.ForeignKey(Module)

class TestSubject(models.Model):
    id =  models.AutoField(primary_key=True)
    test = models.ForeignKey(Test)
    subject = models.ManyToManyField(Subject)

В форме администратора TestSubject у меня может быть текстовое поле множественного выбора для темы, показанной ниже:

**module1 
  *subject1
  *subject2
**module2
  *subject3
  *subject4

Так, когда пользователь выбирает module1, он автоматически выбирает все темы в одном модуле, дляНапример, когда я выбираю module1, выбираются темы 1 и 2.

1 Ответ

0 голосов
/ 02 мая 2011

Вы можете переопределить варианты для вашей предметной области в вашем TestSubject ModelAdmin, чтобы она отражала необходимую вам структуру.Хотя в конечном итоге настройки m2m-виджета достаточно .

Чтобы выбрать несколько записей одновременно, вам следует взглянуть на некоторые виджеты с расширенными возможностями ajax.

Ajax Filtered Fields - это опция, которая может быть изменена, чтобы делать то, что вы хотите.

...