这是一个非常困难的问题,我无法回答。
我有三个类,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。
答案 0 :(得分:0)
您可以在TestSubject ModelAdmin
中为主题字段override the choices,以便它反映您需要的结构。
虽然最终tweaking the m2m-widget is enough。
要一次选择多个条目,您应该查看一些ajax增强的小部件。
Ajax Filtered Fields是一个可以调整的选项,可以做你想做的事。