에 따라 필터를 동적 인라인 형태의 내가 만든이 모델 :장고 : 사용자 선택
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을 가지고 있다고 가정 해 봅시다. 새 모니터를 만들 때 우리는이 서비스 중 일부를 할당합니다. s1과 s3을 가정 해 봅시다. 그런 다음 새로운 학생을 만들 때 학생이 갖게 될 서비스와 모니터를 선택할 수 있어야합니다. 드롭 다운 컨트롤 한 번
- : 여기
내 문제는 내가 날 수있는 학생 (이름, 전화 등 ...)을 작성하는 양식을 필요로한다는 것입니다 서비스가 선택되면 양식에 해당 서비스를 제공하는 모니터가 표시되어야하므로 하나 이상의 확인란을 선택할 수 있습니다.
- + 버튼을 사용하여 프로세스를 반복 할 새 양식을 만들거나 표시하므로 은 새로운 서비스 및 관련 모니터를 선택할 수 있습니다.
저는 장고를 매우 신 'm습니다. 사용자 생성 양식에 인라인 양식을 만들 수 있었지만 여기에 붙어 있습니다. 모든 모니터를 보여주는 CheckboxSelectMultiple 위젯으로 ModelMultipleChoiceField와 서비스를 선택할 수있는 드롭 다운 컨트롤이 있습니다. 여기에서 사용자가 서비스를 선택할 때 이러한 모니터를 필터링하는 방법과 새 서비스/모니터를 선택하기 위해 새 양식을 추가하는 방법을 알아야합니다.
감사합니다. Don, 제 생각에는 사용자 지정 양식과 일부 JS를 사용해 보겠습니다. 사용자가 서비스를 선택하면 모든 서비스를 확인란으로 표시하고 관련 모니터를 표시합니다. 이렇게하면 모든 정보를 클라이언트 쪽에서 필터링 할 수 있습니다. – ESS