Django如何将级别添加到选择多个

时间:2011-05-02 08:23:27

标签: django django-models django-admin

这是一个非常困难的问题,我无法回答。

我有三个类,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 :(得分:0)

您可以在TestSubject ModelAdmin中为主题字段override the choices,以便它反映您需要的结构。 虽然最终tweaking the m2m-widget is enough

要一次选择多个条目,您应该查看一些ajax增强的小部件。

Ajax Filtered Fields是一个可以调整的选项,可以做你想做的事。