【发布时间】:2016-10-07 20:34:01
【问题描述】:
我已经创建了这些模型:
class Service(models.Model):
name = models.CharField(blank=False, max_length=200)code here
class Monitor(models.Model):
name = models.CharField(blank=False, max_length=100)
services = models.ManyToManyField(Service, related_name='monitors')
class Student(models.Model):
name = models.CharField(blank=False, max_length=100)
class ServiceMonitors(models.Model):
student = models.ForeignKey(Student, on_delete=models.CASCADE)
service = models.ForeignKey(Service, on_delete=models.CASCADE)
monitors = models.ManyToManyField(Monitor)
这些模型代表了一家为学生提供多种服务的公司。为这家公司工作的监视器被分配给需要他们提供的服务的学生。监视器可以提供许多服务,并且每个服务都有许多学生。此外,一个学生可以拥有许多服务和监视器。
假设我们有 3 个服务,s1、s2 和 s3。当我们创建一个新的 Monitor 时,我们会为他/她分配其中的一些服务,比如 s1 和 s3。然后,当我们创建一个新学生时,我们应该能够选择学生将拥有哪些服务和监视器。
我的问题是我需要一个表格来创建学生(姓名、电话等),以便我能够:
- 从下拉控件中选择服务
- 选择服务后,表单必须显示提供该服务的监视器,因此我可以选择其中一个或多个(复选框)。
- 一个+按钮来创建/显示一个新的表单来重复这个过程,所以我 可以选择新的服务和相关的监视器。
我对 Django 很陌生。我已经能够在用户创建表单中创建一个内联表单,但我被困在这里。我现在有一个下拉控件来选择一个服务,以及一个带有 CheckboxSelectMultiple 小部件的 ModelMultipleChoiceField,它显示了所有监视器。从这里我需要知道当用户选择服务时如何过滤这些监视器,以及如何添加新表单来选择新的服务/监视器。
【问题讨论】:
标签: python django forms inline-formset